256 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 parallel for simd5 for (int i = 0; i < x; i++)6 ;7}8 9void test_two(int x, int y) {10#pragma omp parallel for 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 parallel for 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 parallel for 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 parallel for 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-parallel-for-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: | `-OMPParallelForSimdDirective {{.*}} <line:4:1, col:30>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 .global_tid. 'const int *const restrict'59// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'60// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:4:1) *const restrict'61// CHECK-NEXT: | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit62// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 063// CHECK-NEXT: | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'64// CHECK-NEXT: |-FunctionDecl {{.*}} <line:9:1, line:14:1> line:9:6 test_two 'void (int, int)'65// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'66// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:22, col:26> col:26 used y 'int'67// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:29, line:14:1>68// CHECK-NEXT: | `-OMPParallelForSimdDirective {{.*}} <line:10:1, col:30>69// CHECK-NEXT: | `-CapturedStmt {{.*}} <line:11:3, line:13:7>70// CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow71// CHECK-NEXT: | | |-ForStmt {{.*}} <line:11:3, line:13:7>72// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:11:8, col:17>73// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit74// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 075// CHECK-NEXT: | | | |-<<<NULL>>>76// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'77// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>78// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'79// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>80// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture81// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'82// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'83// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:12:5, line:13:7>84// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:12:10, col:19>85// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit86// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 087// CHECK-NEXT: | | | |-<<<NULL>>>88// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'89// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>90// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'91// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>92// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture93// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'94// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'95// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:13:7>96// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit .global_tid. 'const int *const restrict'97// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'98// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:10:1) *const restrict'99// CHECK-NEXT: | | |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit100// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0101// CHECK-NEXT: | | `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit102// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 0103// CHECK-NEXT: | |-DeclRefExpr {{.*}} <line:11:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'104// CHECK-NEXT: | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'105// CHECK-NEXT: |-FunctionDecl {{.*}} <line:16:1, line:21:1> line:16:6 test_three 'void (int, int)'106// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:17, col:21> col:21 used x 'int'107// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:24, col:28> col:28 used y 'int'108// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:31, line:21:1>109// CHECK-NEXT: | `-OMPParallelForSimdDirective {{.*}} <line:17:1, col:42>110// CHECK-NEXT: | |-OMPCollapseClause {{.*}} <col:31, col:41>111// CHECK-NEXT: | | `-ConstantExpr {{.*}} <col:40> 'int'112// CHECK-NEXT: | | |-value: Int 1113// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:40> 'int' 1114// CHECK-NEXT: | `-CapturedStmt {{.*}} <line:18:3, line:20:7>115// CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow116// CHECK-NEXT: | | |-ForStmt {{.*}} <line:18:3, line:20:7>117// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:18:8, col:17>118// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit119// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0120// CHECK-NEXT: | | | |-<<<NULL>>>121// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'122// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>123// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'124// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>125// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture126// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'127// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'128// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:19:5, line:20:7>129// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:19:10, col:19>130// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit131// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0132// CHECK-NEXT: | | | |-<<<NULL>>>133// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'134// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>135// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'136// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>137// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture138// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'139// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'140// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:20:7>141// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit .global_tid. 'const int *const restrict'142// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'143// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:17:1) *const restrict'144// CHECK-NEXT: | | |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit145// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0146// CHECK-NEXT: | | `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit147// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 0148// CHECK-NEXT: | |-DeclRefExpr {{.*}} <line:18:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'149// CHECK-NEXT: | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'150// CHECK-NEXT: |-FunctionDecl {{.*}} <line:23:1, line:28:1> line:23:6 test_four 'void (int, int)'151// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'152// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'153// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:30, line:28:1>154// CHECK-NEXT: | `-OMPParallelForSimdDirective {{.*}} <line:24:1, col:42>155// CHECK-NEXT: | |-OMPCollapseClause {{.*}} <col:31, col:41>156// CHECK-NEXT: | | `-ConstantExpr {{.*}} <col:40> 'int'157// CHECK-NEXT: | | |-value: Int 2158// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:40> 'int' 2159// CHECK-NEXT: | `-CapturedStmt {{.*}} <line:25:3, line:27:7>160// CHECK-NEXT: | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow161// CHECK-NEXT: | | |-ForStmt {{.*}} <line:25:3, line:27:7>162// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:25:8, col:17>163// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit164// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0165// CHECK-NEXT: | | | |-<<<NULL>>>166// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'167// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>168// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'169// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>170// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture171// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'172// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'173// CHECK-NEXT: | | | `-ForStmt {{.*}} <line:26:5, line:27:7>174// CHECK-NEXT: | | | |-DeclStmt {{.*}} <line:26:10, col:19>175// CHECK-NEXT: | | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit176// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0177// CHECK-NEXT: | | | |-<<<NULL>>>178// CHECK-NEXT: | | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'179// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>180// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'181// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>182// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture183// CHECK-NEXT: | | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'184// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'185// CHECK-NEXT: | | | `-NullStmt {{.*}} <line:27:7>186// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit .global_tid. 'const int *const restrict'187// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'188// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:24:1) *const restrict'189// CHECK-NEXT: | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit190// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0191// CHECK-NEXT: | | `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit192// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 0193// CHECK-NEXT: | |-DeclRefExpr {{.*}} <line:25:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'194// CHECK-NEXT: | `-DeclRefExpr {{.*}} <line:26:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'195// CHECK-NEXT: `-FunctionDecl {{.*}} <line:30:1, line:36:1> line:30:6 test_five 'void (int, int, int)'196// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'197// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'198// CHECK-NEXT: |-ParmVarDecl {{.*}} <col:30, col:34> col:34 used z 'int'199// CHECK-NEXT: `-CompoundStmt {{.*}} <col:37, line:36:1>200// CHECK-NEXT: `-OMPParallelForSimdDirective {{.*}} <line:31:1, col:42>201// CHECK-NEXT: |-OMPCollapseClause {{.*}} <col:31, col:41>202// CHECK-NEXT: | `-ConstantExpr {{.*}} <col:40> 'int'203// CHECK-NEXT: | |-value: Int 2204// CHECK-NEXT: | `-IntegerLiteral {{.*}} <col:40> 'int' 2205// CHECK-NEXT: `-CapturedStmt {{.*}} <line:32:3, line:35:9>206// CHECK-NEXT: |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow207// CHECK-NEXT: | |-ForStmt {{.*}} <line:32:3, line:35:9>208// CHECK-NEXT: | | |-DeclStmt {{.*}} <line:32:8, col:17>209// CHECK-NEXT: | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit210// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0211// CHECK-NEXT: | | |-<<<NULL>>>212// CHECK-NEXT: | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'213// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>214// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'215// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>216// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture217// CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'218// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'219// CHECK-NEXT: | | `-ForStmt {{.*}} <line:33:5, line:35:9>220// CHECK-NEXT: | | |-DeclStmt {{.*}} <line:33:10, col:19>221// CHECK-NEXT: | | | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit222// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0223// CHECK-NEXT: | | |-<<<NULL>>>224// CHECK-NEXT: | | |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'225// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>226// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'227// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>228// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture229// CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'230// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'231// CHECK-NEXT: | | `-ForStmt {{.*}} <line:34:7, line:35:9>232// CHECK-NEXT: | | |-DeclStmt {{.*}} <line:34:12, col:21>233// CHECK-NEXT: | | | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit234// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <col:20> 'int' 0235// CHECK-NEXT: | | |-<<<NULL>>>236// CHECK-NEXT: | | |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'237// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>238// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'239// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>240// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture241// CHECK-NEXT: | | |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'242// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'243// CHECK-NEXT: | | `-NullStmt {{.*}} <line:35:9>244// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit .global_tid. 'const int *const restrict'245// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'246// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:31:1) *const restrict'247// CHECK-NEXT: | |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit248// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:16> 'int' 0249// CHECK-NEXT: | |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit250// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <col:18> 'int' 0251// CHECK-NEXT: | `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit252// CHECK-NEXT: | `-IntegerLiteral {{.*}} <col:20> 'int' 0253// CHECK-NEXT: |-DeclRefExpr {{.*}} <line:32:23> 'int' lvalue ParmVar {{.*}} 'x' 'int'254// CHECK-NEXT: |-DeclRefExpr {{.*}} <line:33:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'255// CHECK-NEXT: `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int'256