brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · b32d478 Raw
107 lines · plain
1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump %s | FileCheck %s2 3// CHECK-LABEL: arr_assign14// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='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]'7void arr_assign1() {8  int Arr[2] = {0, 1};9  int Arr2[2] = {0, 0};10  Arr = Arr2;11}12 13// CHECK-LABEL: arr_assign214// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='15// CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2]'16// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='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]'19void arr_assign2() {20  int Arr[2] = {0, 1};21  int Arr2[2] = {0, 0};22  int Arr3[2] = {2, 2};23  Arr = Arr2 = Arr3;24}25 26// CHECK-LABEL: arr_assign327// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue '='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]'30void arr_assign3() {31  int Arr[2][2] = {{0, 1}, {2, 3}};32  int Arr2[2][2] = {{0, 0}, {1, 1}};33  Arr = Arr2;34}35 36// CHECK-LABEL: arr_assign437// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue '='38// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue39// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int *' <ArrayToPointerDecay>40// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue41// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='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]'44// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 045// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 646void arr_assign4() {47  int Arr[2] = {0, 1};48  int Arr2[2] = {0, 0};49  (Arr = Arr2)[0] = 6;50}51 52// CHECK-LABEL: arr_assign553// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue '='54// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue55// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int *' <ArrayToPointerDecay>56// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue57// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='58// CHECK: DeclRefExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue Var 0x{{[0-9a-f]+}} 'Arr' 'int[2]'59// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='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]'62// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 063// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 664void arr_assign5() {65  int Arr[2] = {0, 1};66  int Arr2[2] = {0, 0};67  int Arr3[2] = {3, 4};68  (Arr = Arr2 = Arr3)[0] = 6;69}70 71// CHECK-LABEL: arr_assign672// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue '='73// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int' lvalue74// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int *' <ArrayToPointerDecay>75// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue76// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int (*)[2]' <ArrayToPointerDecay>77// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue78// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue '='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]'81// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 082// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 083// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 684void arr_assign6() {85  int Arr[2][2] = {{0, 1}, {2, 3}};86  int Arr2[2][2] = {{0, 0}, {1, 1}};87  (Arr = Arr2)[0][0] = 6;88}89 90// CHECK-LABEL: arr_assign791// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue '='92// CHECK: ArraySubscriptExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]' lvalue93// CHECK: ImplicitCastExpr 0x{{[0-9a-f]+}} {{.*}} 'int (*)[2]' <ArrayToPointerDecay>94// CHECK: ParenExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue95// CHECK: BinaryOperator 0x{{[0-9a-f]+}} {{.*}} 'int[2][2]' lvalue '='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]'98// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 099// CHECK: InitListExpr 0x{{[0-9a-f]+}} {{.*}} 'int[2]'100// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 6101// CHECK: IntegerLiteral 0x{{[0-9a-f]+}} {{.*}} 'int' 6102void arr_assign7() {103  int Arr[2][2] = {{0, 1}, {2, 3}};104  int Arr2[2][2] = {{0, 0}, {1, 1}};105  (Arr = Arr2)[0] = {6, 6};106}107