246 lines · c
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s2 3void test_one(int x) {4#pragma omp simd5 for (int i = 0; i < x; i++)6 ;7}8 9void test_two(int x, int y) {10#pragma omp simd11 for (int i = 0; i < x; i++)12 for (int i = 0; i < y; i++)13 ;14}15 16void test_three(int x, int y) {17#pragma omp simd collapse(1)18 for (int i = 0; i < x; i++)19 for (int i = 0; i < y; i++)20 ;21}22 23void test_four(int x, int y) {24#pragma omp simd collapse(2)25 for (int i = 0; i < x; i++)26 for (int i = 0; i < y; i++)27 ;28}29 30void test_five(int x, int y, int z) {31#pragma omp simd collapse(2)32 for (int i = 0; i < x; i++)33 for (int i = 0; i < y; i++)34 for (int i = 0; i < z; i++)35 ;36}37 38// CHECK: TranslationUnitDecl {{.*}} <<invalid sloc>> <invalid sloc>39// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)'40// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'41// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:22, line:7:1>42// CHECK-NEXT: | `-OMPSimdDirective {{.*}} <line:4:1, col:17>43// CHECK-NEXT: | `-CapturedStmt {{.*}} <line:5:3, line:6:5>44// CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow45// CHECK-NEXT: | | |-ForStmt {{.*}} <line:5:3, line:6:5>46// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:5:8, col:17>47// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit48// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 049// CHECK-NEXT: | | | |-<<<NULL>>>50// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'51// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>52// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'53// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>54// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture55// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'56// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'57// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:6:5>58// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:4:1) *const restrict'59// CHECK-NEXT: | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit60// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 061// CHECK-NEXT: | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'62// CHECK-NEXT: |-FunctionDecl {{.*}} <line:9:1, line:14:1> line:9:6 test_two 'void (int, int)'63// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'64// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:22, col:26> col:26 used y 'int'65// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:29, line:14:1>66// CHECK-NEXT: | `-OMPSimdDirective {{.*}} <line:10:1, col:17>67// CHECK-NEXT: | `-CapturedStmt {{.*}} <line:11:3, line:13:7>68// CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow69// CHECK-NEXT: | | |-ForStmt {{.*}} <line:11:3, line:13:7>70// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:11:8, col:17>71// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit72// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 073// CHECK-NEXT: | | | |-<<<NULL>>>74// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'75// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>76// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'77// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>78// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture79// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'80// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'81// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>82// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>83// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit84// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 085// CHECK-NEXT: | | | |-<<<NULL>>>86// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'87// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>88// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'89// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>90// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture91// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'92// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'93// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:13:7>94// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:10:1) *const restrict'95// CHECK-NEXT: | | |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit96// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 097// CHECK-NEXT: | | `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit98// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 099// CHECK-NEXT: | |-DeclRefExpr {{.*}} <line:11:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'100// CHECK-NEXT: | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'101// CHECK-NEXT: |-FunctionDecl {{.*}} <line:16:1, line:21:1> line:16:6 test_three 'void (int, int)'102// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:17, col:21> col:21 used x 'int'103// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:24, col:28> col:28 used y 'int'104// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:31, line:21:1>105// CHECK-NEXT: | `-OMPSimdDirective {{.*}} <line:17:1, col:29>106// CHECK-NEXT: | |-OMPCollapseClause {{.*}} <col:18, col:28>107// CHECK-NEXT: | | `-ConstantExpr {{.*}} <col:27> 'int'108// CHECK-NEXT: | | |-value: Int 1109// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:27> 'int' 1110// CHECK-NEXT: | `-CapturedStmt {{.*}} <line:18:3, line:20:7>111// CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow112// CHECK-NEXT: | | |-ForStmt {{.*}} <line:18:3, line:20:7>113// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:18:8, col:17>114// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit115// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0116// CHECK-NEXT: | | | |-<<<NULL>>>117// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'118// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>119// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'120// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>121// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture122// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'123// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'124// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>125// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>126// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit127// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0128// CHECK-NEXT: | | | |-<<<NULL>>>129// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'130// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>131// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'132// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>133// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture134// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'135// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'136// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:20:7>137// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:17:1) *const restrict'138// CHECK-NEXT: | | |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit139// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0140// CHECK-NEXT: | | `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit141// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 0142// CHECK-NEXT: | |-DeclRefExpr {{.*}} <line:18:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'143// CHECK-NEXT: | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'144// CHECK-NEXT: |-FunctionDecl {{.*}} <line:23:1, line:28:1> line:23:6 test_four 'void (int, int)'145// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'146// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'147// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:30, line:28:1>148// CHECK-NEXT: | `-OMPSimdDirective {{.*}} <line:24:1, col:29>149// CHECK-NEXT: | |-OMPCollapseClause {{.*}} <col:18, col:28>150// CHECK-NEXT: | | `-ConstantExpr {{.*}} <col:27> 'int'151// CHECK-NEXT: | | |-value: Int 2152// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:27> 'int' 2153// CHECK-NEXT: | `-CapturedStmt {{.*}} <line:25:3, line:27:7>154// CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow155// CHECK-NEXT: | | |-ForStmt {{.*}} <line:25:3, line:27:7>156// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:25:8, col:17>157// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit158// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0159// CHECK-NEXT: | | | |-<<<NULL>>>160// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'161// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>162// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'163// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>164// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture165// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'166// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'167// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:26:5, line:27:7>168// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:26:10, col:19>169// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit170// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0171// CHECK-NEXT: | | | |-<<<NULL>>>172// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'173// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>174// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'175// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>176// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture177// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'178// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'179// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>180// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:24:1) *const restrict'181// CHECK-NEXT: | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit182// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0183// CHECK-NEXT: | | `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit184// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 0185// CHECK-NEXT: | |-DeclRefExpr {{.*}} <line:25:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'186// CHECK-NEXT: | `-DeclRefExpr {{.*}} <line:26:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'187// CHECK-NEXT: `-FunctionDecl {{.*}} <line:30:1, line:36:1> line:30:6 test_five 'void (int, int, int)'188// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'189// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'190// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:30, col:34> col:34 used z 'int'191// CHECK-NEXT: `-CompoundStmt {{.*}} <col:37, line:36:1>192// CHECK-NEXT: `-OMPSimdDirective {{.*}} <line:31:1, col:29>193// CHECK-NEXT: |-OMPCollapseClause {{.*}} <col:18, col:28>194// CHECK-NEXT: | `-ConstantExpr {{.*}} <col:27> 'int'195// CHECK-NEXT: | |-value: Int 2196// CHECK-NEXT: | `-IntegerLiteral {{.*}} <col:27> 'int' 2197// CHECK-NEXT: `-CapturedStmt {{.*}} <line:32:3, line:35:9>198// CHECK-NEXT: |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow199// CHECK-NEXT: | |-ForStmt {{.*}} <line:32:3, line:35:9>200// CHECK-NEXT: | | |-DeclStmt {{.*}} <line:32:8, col:17>201// CHECK-NEXT: | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit202// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0203// CHECK-NEXT: | | |-<<<NULL>>>204// CHECK-NEXT: | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'205// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>206// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'207// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>208// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture209// CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'210// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'211// CHECK-NEXT: | | `-ForStmt {{.*}} <line:33:5, line:35:9>212// CHECK-NEXT: | | |-DeclStmt {{.*}} <line:33:10, col:19>213// CHECK-NEXT: | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit214// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0215// CHECK-NEXT: | | |-<<<NULL>>>216// CHECK-NEXT: | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'217// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>218// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'219// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>220// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture221// CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'222// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'223// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>224// CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>225// CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit226// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0227// CHECK-NEXT: | | |-<<<NULL>>>228// CHECK-NEXT: | | |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'229// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>230// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'231// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>232// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture233// CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'234// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'235// CHECK-NEXT: | | `-NullStmt {{.*}} <line:35:9>236// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:31:1) *const restrict'237// CHECK-NEXT: | |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit238// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0239// CHECK-NEXT: | |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit240// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 0241// CHECK-NEXT: | `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit242// CHECK-NEXT: | `-IntegerLiteral {{.*}} <col:20> 'int' 0243// CHECK-NEXT: |-DeclRefExpr {{.*}} <line:32:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'244// CHECK-NEXT: |-DeclRefExpr {{.*}} <line:33:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'245// CHECK-NEXT: `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int'246