11// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump %s | FileCheck %s
22
33// CHECK-LABEL: arr_assign1
4- // CHECK: CompoundStmt 0x{{[0-9a-f]+}} {{.*}}
5- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
6- // CHECK: VarDecl [[A:0x[0-9a-f]+]] {{.*}} col:7 used Arr 'int[2]' cinit
7- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
8- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
9- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
10- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
11- // CHECK: VarDecl [[B:0x[0-9a-f]+]] {{.*}} col:7 used Arr2 'int[2]' cinit
12- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
13- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
14- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
154// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='
16- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[A]] 'Arr' 'int[2]'
17- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[B]] 'Arr2' 'int[2]'
5+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2]'
6+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr2' 'int[2]'
187void arr_assign1 () {
198 int Arr[2 ] = {0 , 1 };
209 int Arr2[2 ] = {0 , 0 };
2110 Arr = Arr2;
2211}
2312
2413// CHECK-LABEL: arr_assign2
25- // CHECK: CompoundStmt 0x{{[0-9a-f]+}} {{.*}}
26- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
27- // CHECK: VarDecl [[A:0x[0-9a-f]+]] {{.*}} col:7 used Arr 'int[2]' cinit
28- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
29- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
30- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
31- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
32- // CHECK: VarDecl [[B:0x[0-9a-f]+]] {{.*}} col:7 used Arr2 'int[2]' cinit
33- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
34- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
35- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
36- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
37- // CHECK: VarDecl [[C:0x[0-9a-f]+]] {{.*}} col:7 used Arr3 'int[2]' cinit
38- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
39- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 2
40- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 2
4114// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='
42- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[A]] 'Arr' 'int[2]'
15+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2]'
4316// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='
44- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[B]] 'Arr2' 'int[2]'
45- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[C]] 'Arr3' 'int[2]'
17+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr2' 'int[2]'
18+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr3' 'int[2]'
4619void arr_assign2 () {
4720 int Arr[2 ] = {0 , 1 };
4821 int Arr2[2 ] = {0 , 0 };
@@ -51,53 +24,23 @@ void arr_assign2() {
5124}
5225
5326// CHECK-LABEL: arr_assign3
54- // CHECK: CompoundStmt 0x{{[0-9a-f]+}} {{.*}}
55- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
56- // CHECK: VarDecl [[A:0x[0-9a-f]+]] {{.*}} col:7 used Arr 'int[2][2]' cinit
57- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]'
58- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
59- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
60- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
61- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
62- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 2
63- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 3
64- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
65- // CHECK: VarDecl [[B:0x[0-9a-f]+]] {{.*}} col:7 used Arr2 'int[2][2]' cinit
66- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]'
67- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
68- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
69- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
70- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
71- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
72- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
7327// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue '='
74- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var [[A]] 'Arr' 'int[2][2]'
75- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var [[B]] 'Arr2' 'int[2][2]'
28+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2][2]'
29+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr2' 'int[2][2]'
7630void arr_assign3 () {
7731 int Arr[2 ][2 ] = {{0 , 1 }, {2 , 3 }};
7832 int Arr2[2 ][2 ] = {{0 , 0 }, {1 , 1 }};
7933 Arr = Arr2;
8034}
8135
8236// CHECK-LABEL: arr_assign4
83- // CHECK: CompoundStmt 0x{{[0-9a-f]+}} {{.*}}
84- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
85- // CHECK: VarDecl [[A:0x[0-9a-f]+]] {{.*}} col:7 used Arr 'int[2]' cinit
86- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
87- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
88- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
89- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
90- // CHECK: VarDecl [[B:0x[0-9a-f]+]] {{.*}} col:7 used Arr2 'int[2]' cinit
91- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
92- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
93- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
9437// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue '='
9538// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue
9639// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int *' <ArrayToPointerDecay>
9740// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue
9841// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='
99- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[A]] 'Arr' 'int[2]'
100- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[B]] 'Arr2' 'int[2]'
42+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2]'
43+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr2' 'int[2]'
10144// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
10245// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 6
10346void arr_assign4 () {
@@ -107,31 +50,15 @@ void arr_assign4() {
10750}
10851
10952// CHECK-LABEL: arr_assign5
110- // CHECK: CompoundStmt 0x{{[0-9a-f]+}} {{.*}}
111- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
112- // CHECK: VarDecl [[A:0x[0-9a-f]+]] {{.*}} col:7 used Arr 'int[2]' cinit
113- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
114- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
115- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
116- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
117- // CHECK: VarDecl [[B:0x[0-9a-f]+]] {{.*}} col:7 used Arr2 'int[2]' cinit
118- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
119- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
120- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
121- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
122- // CHECK: VarDecl [[C:0x[0-9a-f]+]] {{.*}} col:7 used Arr3 'int[2]' cinit
123- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
124- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 3
125- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 4
12653// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue '='
12754// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue
12855// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int *' <ArrayToPointerDecay>
12956// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue
13057// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='
131- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[A]] 'Arr' 'int[2]'
58+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2]'
13259// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='
133- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[B]] 'Arr2' 'int[2]'
134- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var [[C]] 'Arr3' 'int[2]'
60+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr2' 'int[2]'
61+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr3' 'int[2]'
13562// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
13663// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 6
13764void arr_assign5 () {
@@ -142,34 +69,15 @@ void arr_assign5() {
14269}
14370
14471// CHECK-LABEL: arr_assign6
145- // CHECK: CompoundStmt 0x{{[0-9a-f]+}} {{.*}}
146- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
147- // CHECK: VarDecl [[A:0x[0-9a-f]+]] {{.*}} col:7 used Arr 'int[2][2]' cinit
148- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]'
149- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
150- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
151- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
152- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
153- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 2
154- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 3
155- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
156- // CHECK: VarDecl [[B:0x[0-9a-f]+]] {{.*}} col:7 used Arr2 'int[2][2]' cinit
157- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]'
158- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
159- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
160- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
161- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
162- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
163- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
16472// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue '='
16573// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue
16674// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int *' <ArrayToPointerDecay>
16775// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue
16876// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int (*)[2]' <ArrayToPointerDecay>
16977// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue
17078// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue '='
171- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var [[A]] 'Arr' 'int[2][2]'
172- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var [[B]] 'Arr2' 'int[2][2]'
79+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2][2]'
80+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr2' 'int[2][2]'
17381// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
17482// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
17583// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 6
@@ -180,32 +88,13 @@ void arr_assign6() {
18088}
18189
18290// CHECK-LABEL: arr_assign7
183- // CHECK: CompoundStmt 0x{{[0-9a-f]+}} {{.*}}
184- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
185- // CHECK: VarDecl [[A:0x[0-9a-f]+]] {{.*}} col:7 used Arr 'int[2][2]' cinit
186- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]'
187- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
188- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
189- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
190- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
191- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 2
192- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 3
193- // CHECK: DeclStmt 0x{{[0-9a-f]+}} {{.*}}
194- // CHECK: VarDecl [[B:0x[0-9a-f]+]] {{.*}} col:7 used Arr2 'int[2][2]' cinit
195- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]'
196- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
197- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
198- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
199- // CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
200- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
201- // CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 1
20291// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='
20392// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue
20493// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int (*)[2]' <ArrayToPointerDecay>
20594// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue
20695// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue '='
207- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var [[A]] 'Arr' 'int[2][2]'
208- // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var [[B]] 'Arr2' 'int[2][2]'
96+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2][2]'
97+ // CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr2' 'int[2][2]'
20998// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 0
21099// CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'
211100// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 6
0 commit comments