brintos

brintos / llvm-project-archived public Read only

0
0
Text · 86.4 KiB · 5365116 Raw
961 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 target parallel for5  for (int i = 0; i < x; i++)6    ;7}8 9void test_two(int x, int y) {10#pragma omp target parallel for11  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 target parallel for 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 target parallel for 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 target parallel for 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-target-parallel-for.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: |   `-OMPTargetParallelForDirective {{.*}} <line:4:1, col:32>43// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>44// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:5:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture45// CHECK-NEXT: |     `-CapturedStmt {{.*}} <col:3, line:6:5>46// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow47// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:5:3, line:6:5>48// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow49// CHECK-NEXT: |       | | | |-CapturedStmt {{.*}} <line:5:3, line:6:5>50// CHECK-NEXT: |       | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow51// CHECK-NEXT: |       | | | | | |-ForStmt {{.*}} <line:5:3, line:6:5>52// CHECK-NEXT: |       | | | | | | |-DeclStmt {{.*}} <line:5:8, col:17>53// CHECK-NEXT: |       | | | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit54// CHECK-NEXT: |       | | | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 055// CHECK-NEXT: |       | | | | | | |-<<<NULL>>>56// CHECK-NEXT: |       | | | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'57// CHECK-NEXT: |       | | | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>58// CHECK-NEXT: |       | | | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'59// CHECK-NEXT: |       | | | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>60// CHECK-NEXT: |       | | | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture61// CHECK-NEXT: |       | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'62// CHECK-NEXT: |       | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'63// CHECK-NEXT: |       | | | | | | `-NullStmt {{.*}} <line:6:5>64// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit .global_tid. 'const int *const restrict'65// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'66// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict'67// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit68// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 069// CHECK-NEXT: |       | | | | `-DeclRefExpr {{.*}} <col:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture70// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict'71// CHECK-NEXT: |       | | | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition72// CHECK-NEXT: |       | | | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit73// CHECK-NEXT: |       | | | | `-FieldDecl {{.*}} <line:5:3> col:3 implicit 'int'74// CHECK-NEXT: |       | | | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}75// CHECK-NEXT: |       | | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow76// CHECK-NEXT: |       | | |   |-ForStmt {{.*}} <col:3, line:6:5>77// CHECK-NEXT: |       | | |   | |-DeclStmt {{.*}} <line:5:8, col:17>78// CHECK-NEXT: |       | | |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit79// CHECK-NEXT: |       | | |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 080// CHECK-NEXT: |       | | |   | |-<<<NULL>>>81// CHECK-NEXT: |       | | |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'82// CHECK-NEXT: |       | | |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>83// CHECK-NEXT: |       | | |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'84// CHECK-NEXT: |       | | |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>85// CHECK-NEXT: |       | | |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture86// CHECK-NEXT: |       | | |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'87// CHECK-NEXT: |       | | |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'88// CHECK-NEXT: |       | | |   | `-NullStmt {{.*}} <line:6:5>89// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit .global_tid. 'const int *const restrict'90// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'91// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict'92// CHECK-NEXT: |       | | |   `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit93// CHECK-NEXT: |       | | |     `-IntegerLiteral {{.*}} <col:16> 'int' 094// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <col:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture95// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline96// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit .global_tid. 'const int'97// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'98// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'99// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'100// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'101// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict'102// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition103// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit104// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:5:3> col:3 implicit 'int'105// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}106// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow107// CHECK-NEXT: |       |   |-CapturedStmt {{.*}} <col:3, line:6:5>108// CHECK-NEXT: |       |   | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow109// CHECK-NEXT: |       |   | | |-ForStmt {{.*}} <line:5:3, line:6:5>110// CHECK-NEXT: |       |   | | | |-DeclStmt {{.*}} <line:5:8, col:17>111// CHECK-NEXT: |       |   | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit112// CHECK-NEXT: |       |   | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0113// CHECK-NEXT: |       |   | | | |-<<<NULL>>>114// CHECK-NEXT: |       |   | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'115// CHECK-NEXT: |       |   | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>116// CHECK-NEXT: |       |   | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'117// CHECK-NEXT: |       |   | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>118// CHECK-NEXT: |       |   | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture119// CHECK-NEXT: |       |   | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'120// CHECK-NEXT: |       |   | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'121// CHECK-NEXT: |       |   | | | `-NullStmt {{.*}} <line:6:5>122// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit .global_tid. 'const int *const restrict'123// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'124// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict'125// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit126// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0127// CHECK-NEXT: |       |   | `-DeclRefExpr {{.*}} <col:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture128// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict'129// CHECK-NEXT: |       |   |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition130// CHECK-NEXT: |       |   | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit131// CHECK-NEXT: |       |   | `-FieldDecl {{.*}} <line:5:3> col:3 implicit 'int'132// CHECK-NEXT: |       |   |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}133// CHECK-NEXT: |       |   `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow134// CHECK-NEXT: |       |     |-ForStmt {{.*}} <col:3, line:6:5>135// CHECK-NEXT: |       |     | |-DeclStmt {{.*}} <line:5:8, col:17>136// CHECK-NEXT: |       |     | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit137// CHECK-NEXT: |       |     | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0138// CHECK-NEXT: |       |     | |-<<<NULL>>>139// CHECK-NEXT: |       |     | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'140// CHECK-NEXT: |       |     | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>141// CHECK-NEXT: |       |     | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'142// CHECK-NEXT: |       |     | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>143// CHECK-NEXT: |       |     | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture144// CHECK-NEXT: |       |     | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'145// CHECK-NEXT: |       |     | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'146// CHECK-NEXT: |       |     | `-NullStmt {{.*}} <line:6:5>147// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <line:4:1> col:1 implicit .global_tid. 'const int *const restrict'148// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'149// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict'150// CHECK-NEXT: |       |     `-VarDecl {{.*}} <line:5:8, col:16> col:12 used i 'int' cinit151// CHECK-NEXT: |       |       `-IntegerLiteral {{.*}} <col:16> 'int' 0152// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <col:3> 'int' lvalue ParmVar {{.*}} 'x' 'int'153// CHECK-NEXT: |-FunctionDecl {{.*}} <line:9:1, line:14:1> line:9:6 test_two 'void (int, int)'154// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:15, col:19> col:19 used x 'int'155// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:22, col:26> col:26 used y 'int'156// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:29, line:14:1>157// CHECK-NEXT: |   `-OMPTargetParallelForDirective {{.*}} <line:10:1, col:32>158// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>159// CHECK-NEXT: |     | |-DeclRefExpr {{.*}} <line:11:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture160// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture161// CHECK-NEXT: |     `-CapturedStmt {{.*}} <line:11:3, line:13:7>162// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow163// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:11:3, line:13:7>164// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow165// CHECK-NEXT: |       | | | |-CapturedStmt {{.*}} <line:11:3, line:13:7>166// CHECK-NEXT: |       | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow167// CHECK-NEXT: |       | | | | | |-ForStmt {{.*}} <line:11:3, line:13:7>168// CHECK-NEXT: |       | | | | | | |-DeclStmt {{.*}} <line:11:8, col:17>169// CHECK-NEXT: |       | | | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit170// CHECK-NEXT: |       | | | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0171// CHECK-NEXT: |       | | | | | | |-<<<NULL>>>172// CHECK-NEXT: |       | | | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'173// CHECK-NEXT: |       | | | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>174// CHECK-NEXT: |       | | | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'175// CHECK-NEXT: |       | | | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>176// CHECK-NEXT: |       | | | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture177// CHECK-NEXT: |       | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'178// CHECK-NEXT: |       | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'179// CHECK-NEXT: |       | | | | | | `-ForStmt {{.*}} <line:12:5, line:13:7>180// CHECK-NEXT: |       | | | | | |   |-DeclStmt {{.*}} <line:12:10, col:19>181// CHECK-NEXT: |       | | | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit182// CHECK-NEXT: |       | | | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0183// CHECK-NEXT: |       | | | | | |   |-<<<NULL>>>184// CHECK-NEXT: |       | | | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'185// CHECK-NEXT: |       | | | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>186// CHECK-NEXT: |       | | | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'187// CHECK-NEXT: |       | | | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>188// CHECK-NEXT: |       | | | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture189// CHECK-NEXT: |       | | | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'190// CHECK-NEXT: |       | | | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'191// CHECK-NEXT: |       | | | | | |   `-NullStmt {{.*}} <line:13:7>192// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit .global_tid. 'const int *const restrict'193// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'194// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict'195// CHECK-NEXT: |       | | | | | |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit196// CHECK-NEXT: |       | | | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0197// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit198// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0199// CHECK-NEXT: |       | | | | |-DeclRefExpr {{.*}} <line:11:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture200// CHECK-NEXT: |       | | | | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture201// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict'202// CHECK-NEXT: |       | | | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition203// CHECK-NEXT: |       | | | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit204// CHECK-NEXT: |       | | | | |-FieldDecl {{.*}} <line:11:3> col:3 implicit 'int'205// CHECK-NEXT: |       | | | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}206// CHECK-NEXT: |       | | | | `-FieldDecl {{.*}} <line:12:25> col:25 implicit 'int'207// CHECK-NEXT: |       | | | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}208// CHECK-NEXT: |       | | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow209// CHECK-NEXT: |       | | |   |-ForStmt {{.*}} <line:11:3, line:13:7>210// CHECK-NEXT: |       | | |   | |-DeclStmt {{.*}} <line:11:8, col:17>211// CHECK-NEXT: |       | | |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit212// CHECK-NEXT: |       | | |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0213// CHECK-NEXT: |       | | |   | |-<<<NULL>>>214// CHECK-NEXT: |       | | |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'215// CHECK-NEXT: |       | | |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>216// CHECK-NEXT: |       | | |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'217// CHECK-NEXT: |       | | |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>218// CHECK-NEXT: |       | | |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture219// CHECK-NEXT: |       | | |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'220// CHECK-NEXT: |       | | |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'221// CHECK-NEXT: |       | | |   | `-ForStmt {{.*}} <line:12:5, line:13:7>222// CHECK-NEXT: |       | | |   |   |-DeclStmt {{.*}} <line:12:10, col:19>223// CHECK-NEXT: |       | | |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit224// CHECK-NEXT: |       | | |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0225// CHECK-NEXT: |       | | |   |   |-<<<NULL>>>226// CHECK-NEXT: |       | | |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'227// CHECK-NEXT: |       | | |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>228// CHECK-NEXT: |       | | |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'229// CHECK-NEXT: |       | | |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>230// CHECK-NEXT: |       | | |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture231// CHECK-NEXT: |       | | |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'232// CHECK-NEXT: |       | | |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'233// CHECK-NEXT: |       | | |   |   `-NullStmt {{.*}} <line:13:7>234// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit .global_tid. 'const int *const restrict'235// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'236// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict'237// CHECK-NEXT: |       | | |   |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit238// CHECK-NEXT: |       | | |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0239// CHECK-NEXT: |       | | |   `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit240// CHECK-NEXT: |       | | |     `-IntegerLiteral {{.*}} <col:18> 'int' 0241// CHECK-NEXT: |       | | |-DeclRefExpr {{.*}} <line:11:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture242// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture243// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline244// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit .global_tid. 'const int'245// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'246// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'247// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'248// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'249// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict'250// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition251// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit252// CHECK-NEXT: |       | | |-FieldDecl {{.*}} <line:11:3> col:3 implicit 'int'253// CHECK-NEXT: |       | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}254// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:12:25> col:25 implicit 'int'255// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}256// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow257// CHECK-NEXT: |       |   |-CapturedStmt {{.*}} <line:11:3, line:13:7>258// CHECK-NEXT: |       |   | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow259// CHECK-NEXT: |       |   | | |-ForStmt {{.*}} <line:11:3, line:13:7>260// CHECK-NEXT: |       |   | | | |-DeclStmt {{.*}} <line:11:8, col:17>261// CHECK-NEXT: |       |   | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit262// CHECK-NEXT: |       |   | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0263// CHECK-NEXT: |       |   | | | |-<<<NULL>>>264// CHECK-NEXT: |       |   | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'265// CHECK-NEXT: |       |   | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>266// CHECK-NEXT: |       |   | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'267// CHECK-NEXT: |       |   | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>268// CHECK-NEXT: |       |   | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture269// CHECK-NEXT: |       |   | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'270// CHECK-NEXT: |       |   | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'271// CHECK-NEXT: |       |   | | | `-ForStmt {{.*}} <line:12:5, line:13:7>272// CHECK-NEXT: |       |   | | |   |-DeclStmt {{.*}} <line:12:10, col:19>273// CHECK-NEXT: |       |   | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit274// CHECK-NEXT: |       |   | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0275// CHECK-NEXT: |       |   | | |   |-<<<NULL>>>276// CHECK-NEXT: |       |   | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'277// CHECK-NEXT: |       |   | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>278// CHECK-NEXT: |       |   | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'279// CHECK-NEXT: |       |   | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>280// CHECK-NEXT: |       |   | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture281// CHECK-NEXT: |       |   | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'282// CHECK-NEXT: |       |   | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'283// CHECK-NEXT: |       |   | | |   `-NullStmt {{.*}} <line:13:7>284// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit .global_tid. 'const int *const restrict'285// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'286// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict'287// CHECK-NEXT: |       |   | | |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit288// CHECK-NEXT: |       |   | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0289// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit290// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0291// CHECK-NEXT: |       |   | |-DeclRefExpr {{.*}} <line:11:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture292// CHECK-NEXT: |       |   | `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture293// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict'294// CHECK-NEXT: |       |   |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition295// CHECK-NEXT: |       |   | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit296// CHECK-NEXT: |       |   | |-FieldDecl {{.*}} <line:11:3> col:3 implicit 'int'297// CHECK-NEXT: |       |   | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}298// CHECK-NEXT: |       |   | `-FieldDecl {{.*}} <line:12:25> col:25 implicit 'int'299// CHECK-NEXT: |       |   |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}300// CHECK-NEXT: |       |   `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow301// CHECK-NEXT: |       |     |-ForStmt {{.*}} <line:11:3, line:13:7>302// CHECK-NEXT: |       |     | |-DeclStmt {{.*}} <line:11:8, col:17>303// CHECK-NEXT: |       |     | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit304// CHECK-NEXT: |       |     | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0305// CHECK-NEXT: |       |     | |-<<<NULL>>>306// CHECK-NEXT: |       |     | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'307// CHECK-NEXT: |       |     | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>308// CHECK-NEXT: |       |     | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'309// CHECK-NEXT: |       |     | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>310// CHECK-NEXT: |       |     | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture311// CHECK-NEXT: |       |     | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'312// CHECK-NEXT: |       |     | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'313// CHECK-NEXT: |       |     | `-ForStmt {{.*}} <line:12:5, line:13:7>314// CHECK-NEXT: |       |     |   |-DeclStmt {{.*}} <line:12:10, col:19>315// CHECK-NEXT: |       |     |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit316// CHECK-NEXT: |       |     |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0317// CHECK-NEXT: |       |     |   |-<<<NULL>>>318// CHECK-NEXT: |       |     |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'319// CHECK-NEXT: |       |     |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>320// CHECK-NEXT: |       |     |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'321// CHECK-NEXT: |       |     |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>322// CHECK-NEXT: |       |     |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture323// CHECK-NEXT: |       |     |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'324// CHECK-NEXT: |       |     |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'325// CHECK-NEXT: |       |     |   `-NullStmt {{.*}} <line:13:7>326// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <line:10:1> col:1 implicit .global_tid. 'const int *const restrict'327// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'328// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict'329// CHECK-NEXT: |       |     |-VarDecl {{.*}} <line:11:8, col:16> col:12 used i 'int' cinit330// CHECK-NEXT: |       |     | `-IntegerLiteral {{.*}} <col:16> 'int' 0331// CHECK-NEXT: |       |     `-VarDecl {{.*}} <line:12:10, col:18> col:14 used i 'int' cinit332// CHECK-NEXT: |       |       `-IntegerLiteral {{.*}} <col:18> 'int' 0333// CHECK-NEXT: |       |-DeclRefExpr {{.*}} <line:11:3> 'int' lvalue ParmVar {{.*}} 'x' 'int'334// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <line:12:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'335// CHECK-NEXT: |-FunctionDecl {{.*}} <line:16:1, line:21:1> line:16:6 test_three 'void (int, int)'336// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:17, col:21> col:21 used x 'int'337// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:24, col:28> col:28 used y 'int'338// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:31, line:21:1>339// CHECK-NEXT: |   `-OMPTargetParallelForDirective {{.*}} <line:17:1, col:44>340// CHECK-NEXT: |     |-OMPCollapseClause {{.*}} <col:33, col:43>341// CHECK-NEXT: |     | `-ConstantExpr {{.*}} <col:42> 'int'342// CHECK-NEXT: |     | |-value: Int 1343// CHECK-NEXT: |     |   `-IntegerLiteral {{.*}} <col:42> 'int' 1344// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>345// CHECK-NEXT: |     | |-DeclRefExpr {{.*}} <line:18:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture346// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture347// CHECK-NEXT: |     `-CapturedStmt {{.*}} <line:18:3, line:20:7>348// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow349// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:18:3, line:20:7>350// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow351// CHECK-NEXT: |       | | | |-CapturedStmt {{.*}} <line:18:3, line:20:7>352// CHECK-NEXT: |       | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow353// CHECK-NEXT: |       | | | | | |-ForStmt {{.*}} <line:18:3, line:20:7>354// CHECK-NEXT: |       | | | | | | |-DeclStmt {{.*}} <line:18:8, col:17>355// CHECK-NEXT: |       | | | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit356// CHECK-NEXT: |       | | | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0357// CHECK-NEXT: |       | | | | | | |-<<<NULL>>>358// CHECK-NEXT: |       | | | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'359// CHECK-NEXT: |       | | | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>360// CHECK-NEXT: |       | | | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'361// CHECK-NEXT: |       | | | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>362// CHECK-NEXT: |       | | | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture363// CHECK-NEXT: |       | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'364// CHECK-NEXT: |       | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'365// CHECK-NEXT: |       | | | | | | `-ForStmt {{.*}} <line:19:5, line:20:7>366// CHECK-NEXT: |       | | | | | |   |-DeclStmt {{.*}} <line:19:10, col:19>367// CHECK-NEXT: |       | | | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit368// CHECK-NEXT: |       | | | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0369// CHECK-NEXT: |       | | | | | |   |-<<<NULL>>>370// CHECK-NEXT: |       | | | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'371// CHECK-NEXT: |       | | | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>372// CHECK-NEXT: |       | | | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'373// CHECK-NEXT: |       | | | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>374// CHECK-NEXT: |       | | | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture375// CHECK-NEXT: |       | | | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'376// CHECK-NEXT: |       | | | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'377// CHECK-NEXT: |       | | | | | |   `-NullStmt {{.*}} <line:20:7>378// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit .global_tid. 'const int *const restrict'379// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'380// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict'381// CHECK-NEXT: |       | | | | | |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit382// CHECK-NEXT: |       | | | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0383// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit384// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0385// CHECK-NEXT: |       | | | | |-DeclRefExpr {{.*}} <line:18:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture386// CHECK-NEXT: |       | | | | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture387// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict'388// CHECK-NEXT: |       | | | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition389// CHECK-NEXT: |       | | | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit390// CHECK-NEXT: |       | | | | |-FieldDecl {{.*}} <line:18:3> col:3 implicit 'int'391// CHECK-NEXT: |       | | | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}392// CHECK-NEXT: |       | | | | `-FieldDecl {{.*}} <line:19:25> col:25 implicit 'int'393// CHECK-NEXT: |       | | | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}394// CHECK-NEXT: |       | | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow395// CHECK-NEXT: |       | | |   |-ForStmt {{.*}} <line:18:3, line:20:7>396// CHECK-NEXT: |       | | |   | |-DeclStmt {{.*}} <line:18:8, col:17>397// CHECK-NEXT: |       | | |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit398// CHECK-NEXT: |       | | |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0399// CHECK-NEXT: |       | | |   | |-<<<NULL>>>400// CHECK-NEXT: |       | | |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'401// CHECK-NEXT: |       | | |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>402// CHECK-NEXT: |       | | |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'403// CHECK-NEXT: |       | | |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>404// CHECK-NEXT: |       | | |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture405// CHECK-NEXT: |       | | |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'406// CHECK-NEXT: |       | | |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'407// CHECK-NEXT: |       | | |   | `-ForStmt {{.*}} <line:19:5, line:20:7>408// CHECK-NEXT: |       | | |   |   |-DeclStmt {{.*}} <line:19:10, col:19>409// CHECK-NEXT: |       | | |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit410// CHECK-NEXT: |       | | |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0411// CHECK-NEXT: |       | | |   |   |-<<<NULL>>>412// CHECK-NEXT: |       | | |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'413// CHECK-NEXT: |       | | |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>414// CHECK-NEXT: |       | | |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'415// CHECK-NEXT: |       | | |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>416// CHECK-NEXT: |       | | |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture417// CHECK-NEXT: |       | | |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'418// CHECK-NEXT: |       | | |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'419// CHECK-NEXT: |       | | |   |   `-NullStmt {{.*}} <line:20:7>420// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit .global_tid. 'const int *const restrict'421// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'422// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict'423// CHECK-NEXT: |       | | |   |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit424// CHECK-NEXT: |       | | |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0425// CHECK-NEXT: |       | | |   `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit426// CHECK-NEXT: |       | | |     `-IntegerLiteral {{.*}} <col:18> 'int' 0427// CHECK-NEXT: |       | | |-DeclRefExpr {{.*}} <line:18:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture428// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture429// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline430// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit .global_tid. 'const int'431// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'432// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'433// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'434// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'435// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict'436// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition437// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit438// CHECK-NEXT: |       | | |-FieldDecl {{.*}} <line:18:3> col:3 implicit 'int'439// CHECK-NEXT: |       | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}440// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:19:25> col:25 implicit 'int'441// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}442// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow443// CHECK-NEXT: |       |   |-CapturedStmt {{.*}} <line:18:3, line:20:7>444// CHECK-NEXT: |       |   | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow445// CHECK-NEXT: |       |   | | |-ForStmt {{.*}} <line:18:3, line:20:7>446// CHECK-NEXT: |       |   | | | |-DeclStmt {{.*}} <line:18:8, col:17>447// CHECK-NEXT: |       |   | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit448// CHECK-NEXT: |       |   | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0449// CHECK-NEXT: |       |   | | | |-<<<NULL>>>450// CHECK-NEXT: |       |   | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'451// CHECK-NEXT: |       |   | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>452// CHECK-NEXT: |       |   | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'453// CHECK-NEXT: |       |   | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>454// CHECK-NEXT: |       |   | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture455// CHECK-NEXT: |       |   | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'456// CHECK-NEXT: |       |   | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'457// CHECK-NEXT: |       |   | | | `-ForStmt {{.*}} <line:19:5, line:20:7>458// CHECK-NEXT: |       |   | | |   |-DeclStmt {{.*}} <line:19:10, col:19>459// CHECK-NEXT: |       |   | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit460// CHECK-NEXT: |       |   | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0461// CHECK-NEXT: |       |   | | |   |-<<<NULL>>>462// CHECK-NEXT: |       |   | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'463// CHECK-NEXT: |       |   | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>464// CHECK-NEXT: |       |   | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'465// CHECK-NEXT: |       |   | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>466// CHECK-NEXT: |       |   | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture467// CHECK-NEXT: |       |   | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'468// CHECK-NEXT: |       |   | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'469// CHECK-NEXT: |       |   | | |   `-NullStmt {{.*}} <line:20:7>470// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit .global_tid. 'const int *const restrict'471// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'472// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict'473// CHECK-NEXT: |       |   | | |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit474// CHECK-NEXT: |       |   | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0475// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit476// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0477// CHECK-NEXT: |       |   | |-DeclRefExpr {{.*}} <line:18:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture478// CHECK-NEXT: |       |   | `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture479// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict'480// CHECK-NEXT: |       |   |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition481// CHECK-NEXT: |       |   | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit482// CHECK-NEXT: |       |   | |-FieldDecl {{.*}} <line:18:3> col:3 implicit 'int'483// CHECK-NEXT: |       |   | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}484// CHECK-NEXT: |       |   | `-FieldDecl {{.*}} <line:19:25> col:25 implicit 'int'485// CHECK-NEXT: |       |   |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}486// CHECK-NEXT: |       |   `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow487// CHECK-NEXT: |       |     |-ForStmt {{.*}} <line:18:3, line:20:7>488// CHECK-NEXT: |       |     | |-DeclStmt {{.*}} <line:18:8, col:17>489// CHECK-NEXT: |       |     | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit490// CHECK-NEXT: |       |     | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0491// CHECK-NEXT: |       |     | |-<<<NULL>>>492// CHECK-NEXT: |       |     | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'493// CHECK-NEXT: |       |     | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>494// CHECK-NEXT: |       |     | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'495// CHECK-NEXT: |       |     | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>496// CHECK-NEXT: |       |     | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture497// CHECK-NEXT: |       |     | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++' 498// CHECK-NEXT: |       |     | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'499// CHECK-NEXT: |       |     | `-ForStmt {{.*}} <line:19:5, line:20:7>500// CHECK-NEXT: |       |     |   |-DeclStmt {{.*}} <line:19:10, col:19>501// CHECK-NEXT: |       |     |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit502// CHECK-NEXT: |       |     |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0503// CHECK-NEXT: |       |     |   |-<<<NULL>>>504// CHECK-NEXT: |       |     |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'505// CHECK-NEXT: |       |     |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>506// CHECK-NEXT: |       |     |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'507// CHECK-NEXT: |       |     |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>508// CHECK-NEXT: |       |     |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture509// CHECK-NEXT: |       |     |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'510// CHECK-NEXT: |       |     |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'511// CHECK-NEXT: |       |     |   `-NullStmt {{.*}} <line:20:7>512// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <line:17:1> col:1 implicit .global_tid. 'const int *const restrict'513// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'514// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict'515// CHECK-NEXT: |       |     |-VarDecl {{.*}} <line:18:8, col:16> col:12 used i 'int' cinit516// CHECK-NEXT: |       |     | `-IntegerLiteral {{.*}} <col:16> 'int' 0517// CHECK-NEXT: |       |     `-VarDecl {{.*}} <line:19:10, col:18> col:14 used i 'int' cinit518// CHECK-NEXT: |       |       `-IntegerLiteral {{.*}} <col:18> 'int' 0519// CHECK-NEXT: |       |-DeclRefExpr {{.*}} <line:18:3> 'int' lvalue ParmVar {{.*}} 'x' 'int'520// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <line:19:25> 'int' lvalue ParmVar {{.*}} 'y' 'int'521// CHECK-NEXT: |-FunctionDecl {{.*}} <line:23:1, line:28:1> line:23:6 test_four 'void (int, int)'522// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'523// CHECK-NEXT: | |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'524// CHECK-NEXT: | `-CompoundStmt {{.*}} <col:30, line:28:1>525// CHECK-NEXT: |   `-OMPTargetParallelForDirective {{.*}} <line:24:1, col:44>526// CHECK-NEXT: |     |-OMPCollapseClause {{.*}} <col:33, col:43>527// CHECK-NEXT: |     | `-ConstantExpr {{.*}} <col:42> 'int'528// CHECK-NEXT: |     | |-value: Int 2529// CHECK-NEXT: |     |   `-IntegerLiteral {{.*}} <col:42> 'int' 2530// CHECK-NEXT: |     |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>531// CHECK-NEXT: |     | |-DeclRefExpr {{.*}} <line:25:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture532// CHECK-NEXT: |     | `-DeclRefExpr {{.*}} <line:26:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture533// CHECK-NEXT: |     `-CapturedStmt {{.*}} <line:25:3, line:27:7>534// CHECK-NEXT: |       |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow535// CHECK-NEXT: |       | |-CapturedStmt {{.*}} <line:25:3, line:27:7>536// CHECK-NEXT: |       | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow537// CHECK-NEXT: |       | | | |-CapturedStmt {{.*}} <line:25:3, line:27:7>538// CHECK-NEXT: |       | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow539// CHECK-NEXT: |       | | | | | |-ForStmt {{.*}} <line:25:3, line:27:7>540// CHECK-NEXT: |       | | | | | | |-DeclStmt {{.*}} <line:25:8, col:17>541// CHECK-NEXT: |       | | | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit542// CHECK-NEXT: |       | | | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0543// CHECK-NEXT: |       | | | | | | |-<<<NULL>>>544// CHECK-NEXT: |       | | | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'545// CHECK-NEXT: |       | | | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>546// CHECK-NEXT: |       | | | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'547// CHECK-NEXT: |       | | | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>548// CHECK-NEXT: |       | | | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture549// CHECK-NEXT: |       | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'550// CHECK-NEXT: |       | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'551// CHECK-NEXT: |       | | | | | | `-ForStmt {{.*}} <line:26:5, line:27:7>552// CHECK-NEXT: |       | | | | | |   |-DeclStmt {{.*}} <line:26:10, col:19>553// CHECK-NEXT: |       | | | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit554// CHECK-NEXT: |       | | | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0555// CHECK-NEXT: |       | | | | | |   |-<<<NULL>>>556// CHECK-NEXT: |       | | | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'557// CHECK-NEXT: |       | | | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>558// CHECK-NEXT: |       | | | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'559// CHECK-NEXT: |       | | | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>560// CHECK-NEXT: |       | | | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture561// CHECK-NEXT: |       | | | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'562// CHECK-NEXT: |       | | | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'563// CHECK-NEXT: |       | | | | | |   `-NullStmt {{.*}} <line:27:7>564// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit .global_tid. 'const int *const restrict'565// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'566// CHECK-NEXT: |       | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict'567// CHECK-NEXT: |       | | | | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit568// CHECK-NEXT: |       | | | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0569// CHECK-NEXT: |       | | | | | `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit570// CHECK-NEXT: |       | | | | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0571// CHECK-NEXT: |       | | | | |-DeclRefExpr {{.*}} <line:25:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture572// CHECK-NEXT: |       | | | | `-DeclRefExpr {{.*}} <line:26:5> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture573// CHECK-NEXT: |       | | | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict'574// CHECK-NEXT: |       | | | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition575// CHECK-NEXT: |       | | | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit576// CHECK-NEXT: |       | | | | |-FieldDecl {{.*}} <line:25:3> col:3 implicit 'int'577// CHECK-NEXT: |       | | | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}578// CHECK-NEXT: |       | | | | `-FieldDecl {{.*}} <line:26:5> col:5 implicit 'int'579// CHECK-NEXT: |       | | | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}580// CHECK-NEXT: |       | | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow581// CHECK-NEXT: |       | | |   |-ForStmt {{.*}} <line:25:3, line:27:7>582// CHECK-NEXT: |       | | |   | |-DeclStmt {{.*}} <line:25:8, col:17>583// CHECK-NEXT: |       | | |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit584// CHECK-NEXT: |       | | |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0585// CHECK-NEXT: |       | | |   | |-<<<NULL>>>586// CHECK-NEXT: |       | | |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'587// CHECK-NEXT: |       | | |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>588// CHECK-NEXT: |       | | |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'589// CHECK-NEXT: |       | | |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>590// CHECK-NEXT: |       | | |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture591// CHECK-NEXT: |       | | |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'592// CHECK-NEXT: |       | | |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'593// CHECK-NEXT: |       | | |   | `-ForStmt {{.*}} <line:26:5, line:27:7>594// CHECK-NEXT: |       | | |   |   |-DeclStmt {{.*}} <line:26:10, col:19>595// CHECK-NEXT: |       | | |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit596// CHECK-NEXT: |       | | |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0597// CHECK-NEXT: |       | | |   |   |-<<<NULL>>>598// CHECK-NEXT: |       | | |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'599// CHECK-NEXT: |       | | |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>600// CHECK-NEXT: |       | | |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'601// CHECK-NEXT: |       | | |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>602// CHECK-NEXT: |       | | |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture603// CHECK-NEXT: |       | | |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'604// CHECK-NEXT: |       | | |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'605// CHECK-NEXT: |       | | |   |   `-NullStmt {{.*}} <line:27:7>606// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit .global_tid. 'const int *const restrict'607// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'608// CHECK-NEXT: |       | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict'609// CHECK-NEXT: |       | | |   |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit610// CHECK-NEXT: |       | | |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0611// CHECK-NEXT: |       | | |   `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit612// CHECK-NEXT: |       | | |     `-IntegerLiteral {{.*}} <col:18> 'int' 0613// CHECK-NEXT: |       | | |-DeclRefExpr {{.*}} <line:25:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture614// CHECK-NEXT: |       | | `-DeclRefExpr {{.*}} <line:26:5> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture615// CHECK-NEXT: |       | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline616// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit .global_tid. 'const int'617// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'618// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'619// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'620// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'621// CHECK-NEXT: |       | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict'622// CHECK-NEXT: |       | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition623// CHECK-NEXT: |       | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit624// CHECK-NEXT: |       | | |-FieldDecl {{.*}} <line:25:3> col:3 implicit 'int'625// CHECK-NEXT: |       | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}626// CHECK-NEXT: |       | | `-FieldDecl {{.*}} <line:26:5> col:5 implicit 'int'627// CHECK-NEXT: |       | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}628// CHECK-NEXT: |       | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow629// CHECK-NEXT: |       |   |-CapturedStmt {{.*}} <line:25:3, line:27:7>630// CHECK-NEXT: |       |   | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow631// CHECK-NEXT: |       |   | | |-ForStmt {{.*}} <line:25:3, line:27:7>632// CHECK-NEXT: |       |   | | | |-DeclStmt {{.*}} <line:25:8, col:17>633// CHECK-NEXT: |       |   | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit634// CHECK-NEXT: |       |   | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0635// CHECK-NEXT: |       |   | | | |-<<<NULL>>>636// CHECK-NEXT: |       |   | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'637// CHECK-NEXT: |       |   | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>638// CHECK-NEXT: |       |   | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'639// CHECK-NEXT: |       |   | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>640// CHECK-NEXT: |       |   | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture641// CHECK-NEXT: |       |   | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'642// CHECK-NEXT: |       |   | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'643// CHECK-NEXT: |       |   | | | `-ForStmt {{.*}} <line:26:5, line:27:7>644// CHECK-NEXT: |       |   | | |   |-DeclStmt {{.*}} <line:26:10, col:19>645// CHECK-NEXT: |       |   | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit646// CHECK-NEXT: |       |   | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0647// CHECK-NEXT: |       |   | | |   |-<<<NULL>>>648// CHECK-NEXT: |       |   | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'649// CHECK-NEXT: |       |   | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>650// CHECK-NEXT: |       |   | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'651// CHECK-NEXT: |       |   | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>652// CHECK-NEXT: |       |   | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture653// CHECK-NEXT: |       |   | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'654// CHECK-NEXT: |       |   | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'655// CHECK-NEXT: |       |   | | |   `-NullStmt {{.*}} <line:27:7>656// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit .global_tid. 'const int *const restrict'657// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'658// CHECK-NEXT: |       |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict'659// CHECK-NEXT: |       |   | | |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit660// CHECK-NEXT: |       |   | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0661// CHECK-NEXT: |       |   | | `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit662// CHECK-NEXT: |       |   | |   `-IntegerLiteral {{.*}} <col:18> 'int' 0663// CHECK-NEXT: |       |   | |-DeclRefExpr {{.*}} <line:25:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture664// CHECK-NEXT: |       |   | `-DeclRefExpr {{.*}} <line:26:5> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture665// CHECK-NEXT: |       |   |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict'666// CHECK-NEXT: |       |   |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition667// CHECK-NEXT: |       |   | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit668// CHECK-NEXT: |       |   | |-FieldDecl {{.*}} <line:25:3> col:3 implicit 'int'669// CHECK-NEXT: |       |   | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}670// CHECK-NEXT: |       |   | `-FieldDecl {{.*}} <line:26:5> col:5 implicit 'int'671// CHECK-NEXT: |       |   |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}672// CHECK-NEXT: |       |   `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow673// CHECK-NEXT: |       |     |-ForStmt {{.*}} <line:25:3, line:27:7>674// CHECK-NEXT: |       |     | |-DeclStmt {{.*}} <line:25:8, col:17>675// CHECK-NEXT: |       |     | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit676// CHECK-NEXT: |       |     | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0677// CHECK-NEXT: |       |     | |-<<<NULL>>>678// CHECK-NEXT: |       |     | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'679// CHECK-NEXT: |       |     | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>680// CHECK-NEXT: |       |     | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'681// CHECK-NEXT: |       |     | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>682// CHECK-NEXT: |       |     | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture683// CHECK-NEXT: |       |     | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'684// CHECK-NEXT: |       |     | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'685// CHECK-NEXT: |       |     | `-ForStmt {{.*}} <line:26:5, line:27:7>686// CHECK-NEXT: |       |     |   |-DeclStmt {{.*}} <line:26:10, col:19>687// CHECK-NEXT: |       |     |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit688// CHECK-NEXT: |       |     |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0689// CHECK-NEXT: |       |     |   |-<<<NULL>>>690// CHECK-NEXT: |       |     |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'691// CHECK-NEXT: |       |     |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>692// CHECK-NEXT: |       |     |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'693// CHECK-NEXT: |       |     |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>694// CHECK-NEXT: |       |     |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture695// CHECK-NEXT: |       |     |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'696// CHECK-NEXT: |       |     |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'697// CHECK-NEXT: |       |     |   `-NullStmt {{.*}} <line:27:7>698// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <line:24:1> col:1 implicit .global_tid. 'const int *const restrict'699// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'700// CHECK-NEXT: |       |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict'701// CHECK-NEXT: |       |     |-VarDecl {{.*}} <line:25:8, col:16> col:12 used i 'int' cinit702// CHECK-NEXT: |       |     | `-IntegerLiteral {{.*}} <col:16> 'int' 0703// CHECK-NEXT: |       |     `-VarDecl {{.*}} <line:26:10, col:18> col:14 used i 'int' cinit704// CHECK-NEXT: |       |       `-IntegerLiteral {{.*}} <col:18> 'int' 0705// CHECK-NEXT: |       |-DeclRefExpr {{.*}} <line:25:3> 'int' lvalue ParmVar {{.*}} 'x' 'int'706// CHECK-NEXT: |       `-DeclRefExpr {{.*}} <line:26:5> 'int' lvalue ParmVar {{.*}} 'y' 'int'707// CHECK-NEXT: `-FunctionDecl {{.*}} <line:30:1, line:36:1> line:30:6 test_five 'void (int, int, int)'708// CHECK-NEXT:   |-ParmVarDecl {{.*}} <col:16, col:20> col:20 used x 'int'709// CHECK-NEXT:   |-ParmVarDecl {{.*}} <col:23, col:27> col:27 used y 'int'710// CHECK-NEXT:   |-ParmVarDecl {{.*}} <col:30, col:34> col:34 used z 'int'711// CHECK-NEXT:   `-CompoundStmt {{.*}} <col:37, line:36:1>712// CHECK-NEXT:     `-OMPTargetParallelForDirective {{.*}} <line:31:1, col:44>713// CHECK-NEXT:       |-OMPCollapseClause {{.*}} <col:33, col:43>714// CHECK-NEXT:       | `-ConstantExpr {{.*}} <col:42> 'int'715// CHECK-NEXT:       | |-value: Int 2716// CHECK-NEXT:       |   `-IntegerLiteral {{.*}} <col:42> 'int' 2717// CHECK-NEXT:       |-OMPFirstprivateClause {{.*}} <<invalid sloc>> <implicit>718// CHECK-NEXT:       | |-DeclRefExpr {{.*}} <line:32:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture719// CHECK-NEXT:       | |-DeclRefExpr {{.*}} <line:33:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture720// CHECK-NEXT:       | `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture721// CHECK-NEXT:       `-CapturedStmt {{.*}} <line:32:3, line:35:9>722// CHECK-NEXT:         |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow723// CHECK-NEXT:         | |-CapturedStmt {{.*}} <line:32:3, line:35:9>724// CHECK-NEXT:         | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow725// CHECK-NEXT:         | | | |-CapturedStmt {{.*}} <line:32:3, line:35:9>726// CHECK-NEXT:         | | | | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow727// CHECK-NEXT:         | | | | | |-ForStmt {{.*}} <line:32:3, line:35:9>728// CHECK-NEXT:         | | | | | | |-DeclStmt {{.*}} <line:32:8, col:17>729// CHECK-NEXT:         | | | | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit730// CHECK-NEXT:         | | | | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0731// CHECK-NEXT:         | | | | | | |-<<<NULL>>>732// CHECK-NEXT:         | | | | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'733// CHECK-NEXT:         | | | | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>734// CHECK-NEXT:         | | | | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'735// CHECK-NEXT:         | | | | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>736// CHECK-NEXT:         | | | | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture737// CHECK-NEXT:         | | | | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'738// CHECK-NEXT:         | | | | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'739// CHECK-NEXT:         | | | | | | `-ForStmt {{.*}} <line:33:5, line:35:9>740// CHECK-NEXT:         | | | | | |   |-DeclStmt {{.*}} <line:33:10, col:19>741// CHECK-NEXT:         | | | | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit742// CHECK-NEXT:         | | | | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0743// CHECK-NEXT:         | | | | | |   |-<<<NULL>>>744// CHECK-NEXT:         | | | | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'745// CHECK-NEXT:         | | | | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>746// CHECK-NEXT:         | | | | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'747// CHECK-NEXT:         | | | | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>748// CHECK-NEXT:         | | | | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture749// CHECK-NEXT:         | | | | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'750// CHECK-NEXT:         | | | | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'751// CHECK-NEXT:         | | | | | |   `-ForStmt {{.*}} <line:34:7, line:35:9>752// CHECK-NEXT:         | | | | | |     |-DeclStmt {{.*}} <line:34:12, col:21>753// CHECK-NEXT:         | | | | | |     | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit754// CHECK-NEXT:         | | | | | |     |   `-IntegerLiteral {{.*}} <col:20> 'int' 0755// CHECK-NEXT:         | | | | | |     |-<<<NULL>>>756// CHECK-NEXT:         | | | | | |     |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'757// CHECK-NEXT:         | | | | | |     | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>758// CHECK-NEXT:         | | | | | |     | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'759// CHECK-NEXT:         | | | | | |     | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>760// CHECK-NEXT:         | | | | | |     |   `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture761// CHECK-NEXT:         | | | | | |     |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'762// CHECK-NEXT:         | | | | | |     | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'763// CHECK-NEXT:         | | | | | |     `-NullStmt {{.*}} <line:35:9>764// CHECK-NEXT:         | | | | | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit .global_tid. 'const int *const restrict'765// CHECK-NEXT:         | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'766// CHECK-NEXT:         | | | | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict'767// CHECK-NEXT:         | | | | | |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit768// CHECK-NEXT:         | | | | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0769// CHECK-NEXT:         | | | | | |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit770// CHECK-NEXT:         | | | | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0771// CHECK-NEXT:         | | | | | `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit772// CHECK-NEXT:         | | | | |   `-IntegerLiteral {{.*}} <col:20> 'int' 0773// CHECK-NEXT:         | | | | |-DeclRefExpr {{.*}} <line:32:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture774// CHECK-NEXT:         | | | | |-DeclRefExpr {{.*}} <line:33:5> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture775// CHECK-NEXT:         | | | | `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture776// CHECK-NEXT:         | | | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict'777// CHECK-NEXT:         | | | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition778// CHECK-NEXT:         | | | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit779// CHECK-NEXT:         | | | | |-FieldDecl {{.*}} <line:32:3> col:3 implicit 'int'780// CHECK-NEXT:         | | | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}781// CHECK-NEXT:         | | | | |-FieldDecl {{.*}} <line:33:5> col:5 implicit 'int'782// CHECK-NEXT:         | | | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}783// CHECK-NEXT:         | | | | `-FieldDecl {{.*}} <line:34:27> col:27 implicit 'int'784// CHECK-NEXT:         | | | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}785// CHECK-NEXT:         | | | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow786// CHECK-NEXT:         | | |   |-ForStmt {{.*}} <line:32:3, line:35:9>787// CHECK-NEXT:         | | |   | |-DeclStmt {{.*}} <line:32:8, col:17>788// CHECK-NEXT:         | | |   | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit789// CHECK-NEXT:         | | |   | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0790// CHECK-NEXT:         | | |   | |-<<<NULL>>>791// CHECK-NEXT:         | | |   | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'792// CHECK-NEXT:         | | |   | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>793// CHECK-NEXT:         | | |   | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'794// CHECK-NEXT:         | | |   | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>795// CHECK-NEXT:         | | |   | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture796// CHECK-NEXT:         | | |   | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'797// CHECK-NEXT:         | | |   | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'798// CHECK-NEXT:         | | |   | `-ForStmt {{.*}} <line:33:5, line:35:9>799// CHECK-NEXT:         | | |   |   |-DeclStmt {{.*}} <line:33:10, col:19>800// CHECK-NEXT:         | | |   |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit801// CHECK-NEXT:         | | |   |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0802// CHECK-NEXT:         | | |   |   |-<<<NULL>>>803// CHECK-NEXT:         | | |   |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'804// CHECK-NEXT:         | | |   |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>805// CHECK-NEXT:         | | |   |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'806// CHECK-NEXT:         | | |   |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>807// CHECK-NEXT:         | | |   |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture808// CHECK-NEXT:         | | |   |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'809// CHECK-NEXT:         | | |   |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'810// CHECK-NEXT:         | | |   |   `-ForStmt {{.*}} <line:34:7, line:35:9>811// CHECK-NEXT:         | | |   |     |-DeclStmt {{.*}} <line:34:12, col:21>812// CHECK-NEXT:         | | |   |     | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit813// CHECK-NEXT:         | | |   |     |   `-IntegerLiteral {{.*}} <col:20> 'int' 0814// CHECK-NEXT:         | | |   |     |-<<<NULL>>>815// CHECK-NEXT:         | | |   |     |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'816// CHECK-NEXT:         | | |   |     | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>817// CHECK-NEXT:         | | |   |     | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'818// CHECK-NEXT:         | | |   |     | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>819// CHECK-NEXT:         | | |   |     |   `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture820// CHECK-NEXT:         | | |   |     |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'821// CHECK-NEXT:         | | |   |     | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'822// CHECK-NEXT:         | | |   |     `-NullStmt {{.*}} <line:35:9>823// CHECK-NEXT:         | | |   |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit .global_tid. 'const int *const restrict'824// CHECK-NEXT:         | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'825// CHECK-NEXT:         | | |   |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict'826// CHECK-NEXT:         | | |   |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit827// CHECK-NEXT:         | | |   | `-IntegerLiteral {{.*}} <col:16> 'int' 0828// CHECK-NEXT:         | | |   |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit829// CHECK-NEXT:         | | |   | `-IntegerLiteral {{.*}} <col:18> 'int' 0830// CHECK-NEXT:         | | |   `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit831// CHECK-NEXT:         | | |     `-IntegerLiteral {{.*}} <col:20> 'int' 0832// CHECK-NEXT:         | | |-DeclRefExpr {{.*}} <line:32:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture833// CHECK-NEXT:         | | |-DeclRefExpr {{.*}} <line:33:5> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture834// CHECK-NEXT:         | | `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture835// CHECK-NEXT:         | |-AlwaysInlineAttr {{.*}} <<invalid sloc>> Implicit __forceinline836// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit .global_tid. 'const int'837// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .part_id. 'const int *const restrict'838// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .privates. 'void *const restrict'839// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)'840// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .task_t. 'void *const'841// CHECK-NEXT:         | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict'842// CHECK-NEXT:         | |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition843// CHECK-NEXT:         | | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit844// CHECK-NEXT:         | | |-FieldDecl {{.*}} <line:32:3> col:3 implicit 'int'845// CHECK-NEXT:         | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}846// CHECK-NEXT:         | | |-FieldDecl {{.*}} <line:33:5> col:5 implicit 'int'847// CHECK-NEXT:         | | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}848// CHECK-NEXT:         | | `-FieldDecl {{.*}} <line:34:27> col:27 implicit 'int'849// CHECK-NEXT:         | |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}850// CHECK-NEXT:         | `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow851// CHECK-NEXT:         |   |-CapturedStmt {{.*}} <line:32:3, line:35:9>852// CHECK-NEXT:         |   | |-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow853// CHECK-NEXT:         |   | | |-ForStmt {{.*}} <line:32:3, line:35:9>854// CHECK-NEXT:         |   | | | |-DeclStmt {{.*}} <line:32:8, col:17>855// CHECK-NEXT:         |   | | | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit856// CHECK-NEXT:         |   | | | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0857// CHECK-NEXT:         |   | | | |-<<<NULL>>>858// CHECK-NEXT:         |   | | | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'859// CHECK-NEXT:         |   | | | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>860// CHECK-NEXT:         |   | | | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'861// CHECK-NEXT:         |   | | | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>862// CHECK-NEXT:         |   | | | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture863// CHECK-NEXT:         |   | | | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'864// CHECK-NEXT:         |   | | | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'865// CHECK-NEXT:         |   | | | `-ForStmt {{.*}} <line:33:5, line:35:9>866// CHECK-NEXT:         |   | | |   |-DeclStmt {{.*}} <line:33:10, col:19>867// CHECK-NEXT:         |   | | |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit868// CHECK-NEXT:         |   | | |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0869// CHECK-NEXT:         |   | | |   |-<<<NULL>>>870// CHECK-NEXT:         |   | | |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'871// CHECK-NEXT:         |   | | |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>872// CHECK-NEXT:         |   | | |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'873// CHECK-NEXT:         |   | | |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>874// CHECK-NEXT:         |   | | |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture875// CHECK-NEXT:         |   | | |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'876// CHECK-NEXT:         |   | | |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'877// CHECK-NEXT:         |   | | |   `-ForStmt {{.*}} <line:34:7, line:35:9>878// CHECK-NEXT:         |   | | |     |-DeclStmt {{.*}} <line:34:12, col:21>879// CHECK-NEXT:         |   | | |     | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit880// CHECK-NEXT:         |   | | |     |   `-IntegerLiteral {{.*}} <col:20> 'int' 0881// CHECK-NEXT:         |   | | |     |-<<<NULL>>>882// CHECK-NEXT:         |   | | |     |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'883// CHECK-NEXT:         |   | | |     | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>884// CHECK-NEXT:         |   | | |     | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'885// CHECK-NEXT:         |   | | |     | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>886// CHECK-NEXT:         |   | | |     |   `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture887// CHECK-NEXT:         |   | | |     |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'888// CHECK-NEXT:         |   | | |     | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'889// CHECK-NEXT:         |   | | |     `-NullStmt {{.*}} <line:35:9>890// CHECK-NEXT:         |   | | |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit .global_tid. 'const int *const restrict'891// CHECK-NEXT:         |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'892// CHECK-NEXT:         |   | | |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict'893// CHECK-NEXT:         |   | | |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit894// CHECK-NEXT:         |   | | | `-IntegerLiteral {{.*}} <col:16> 'int' 0895// CHECK-NEXT:         |   | | |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit896// CHECK-NEXT:         |   | | | `-IntegerLiteral {{.*}} <col:18> 'int' 0897// CHECK-NEXT:         |   | | `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit898// CHECK-NEXT:         |   | |   `-IntegerLiteral {{.*}} <col:20> 'int' 0899// CHECK-NEXT:         |   | |-DeclRefExpr {{.*}} <line:32:3> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture900// CHECK-NEXT:         |   | |-DeclRefExpr {{.*}} <line:33:5> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture901// CHECK-NEXT:         |   | `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture902// CHECK-NEXT:         |   |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict'903// CHECK-NEXT:         |   |-RecordDecl {{.*}} <col:1> col:1 implicit struct definition904// CHECK-NEXT:         |   | |-CapturedRecordAttr {{.*}} <<invalid sloc>> Implicit905// CHECK-NEXT:         |   | |-FieldDecl {{.*}} <line:32:3> col:3 implicit 'int'906// CHECK-NEXT:         |   | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}907// CHECK-NEXT:         |   | |-FieldDecl {{.*}} <line:33:5> col:5 implicit 'int'908// CHECK-NEXT:         |   | | `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}909// CHECK-NEXT:         |   | `-FieldDecl {{.*}} <line:34:27> col:27 implicit 'int'910// CHECK-NEXT:         |   |   `-OMPCaptureKindAttr {{.*}} <<invalid sloc>> Implicit {{.*}}911// CHECK-NEXT:         |   `-CapturedDecl {{.*}} <<invalid sloc>> <invalid sloc> nothrow912// CHECK-NEXT:         |     |-ForStmt {{.*}} <line:32:3, line:35:9>913// CHECK-NEXT:         |     | |-DeclStmt {{.*}} <line:32:8, col:17>914// CHECK-NEXT:         |     | | `-VarDecl {{.*}} <col:8, col:16> col:12 used i 'int' cinit915// CHECK-NEXT:         |     | |   `-IntegerLiteral {{.*}} <col:16> 'int' 0916// CHECK-NEXT:         |     | |-<<<NULL>>>917// CHECK-NEXT:         |     | |-BinaryOperator {{.*}} <col:19, col:23> 'int' '<'918// CHECK-NEXT:         |     | | |-ImplicitCastExpr {{.*}} <col:19> 'int' <LValueToRValue>919// CHECK-NEXT:         |     | | | `-DeclRefExpr {{.*}} <col:19> 'int' lvalue Var {{.*}} 'i' 'int'920// CHECK-NEXT:         |     | | `-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>921// CHECK-NEXT:         |     | |   `-DeclRefExpr {{.*}} <col:23> 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture922// CHECK-NEXT:         |     | |-UnaryOperator {{.*}} <col:26, col:27> 'int' postfix '++'923// CHECK-NEXT:         |     | | `-DeclRefExpr {{.*}} <col:26> 'int' lvalue Var {{.*}} 'i' 'int'924// CHECK-NEXT:         |     | `-ForStmt {{.*}} <line:33:5, line:35:9>925// CHECK-NEXT:         |     |   |-DeclStmt {{.*}} <line:33:10, col:19>926// CHECK-NEXT:         |     |   | `-VarDecl {{.*}} <col:10, col:18> col:14 used i 'int' cinit927// CHECK-NEXT:         |     |   |   `-IntegerLiteral {{.*}} <col:18> 'int' 0928// CHECK-NEXT:         |     |   |-<<<NULL>>>929// CHECK-NEXT:         |     |   |-BinaryOperator {{.*}} <col:21, col:25> 'int' '<'930// CHECK-NEXT:         |     |   | |-ImplicitCastExpr {{.*}} <col:21> 'int' <LValueToRValue>931// CHECK-NEXT:         |     |   | | `-DeclRefExpr {{.*}} <col:21> 'int' lvalue Var {{.*}} 'i' 'int'932// CHECK-NEXT:         |     |   | `-ImplicitCastExpr {{.*}} <col:25> 'int' <LValueToRValue>933// CHECK-NEXT:         |     |   |   `-DeclRefExpr {{.*}} <col:25> 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture934// CHECK-NEXT:         |     |   |-UnaryOperator {{.*}} <col:28, col:29> 'int' postfix '++'935// CHECK-NEXT:         |     |   | `-DeclRefExpr {{.*}} <col:28> 'int' lvalue Var {{.*}} 'i' 'int'936// CHECK-NEXT:         |     |   `-ForStmt {{.*}} <line:34:7, line:35:9>937// CHECK-NEXT:         |     |     |-DeclStmt {{.*}} <line:34:12, col:21>938// CHECK-NEXT:         |     |     | `-VarDecl {{.*}} <col:12, col:20> col:16 used i 'int' cinit939// CHECK-NEXT:         |     |     |   `-IntegerLiteral {{.*}} <col:20> 'int' 0940// CHECK-NEXT:         |     |     |-<<<NULL>>>941// CHECK-NEXT:         |     |     |-BinaryOperator {{.*}} <col:23, col:27> 'int' '<'942// CHECK-NEXT:         |     |     | |-ImplicitCastExpr {{.*}} <col:23> 'int' <LValueToRValue>943// CHECK-NEXT:         |     |     | | `-DeclRefExpr {{.*}} <col:23> 'int' lvalue Var {{.*}} 'i' 'int'944// CHECK-NEXT:         |     |     | `-ImplicitCastExpr {{.*}} <col:27> 'int' <LValueToRValue>945// CHECK-NEXT:         |     |     |   `-DeclRefExpr {{.*}} <col:27> 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture946// CHECK-NEXT:         |     |     |-UnaryOperator {{.*}} <col:30, col:31> 'int' postfix '++'947// CHECK-NEXT:         |     |     | `-DeclRefExpr {{.*}} <col:30> 'int' lvalue Var {{.*}} 'i' 'int'948// CHECK-NEXT:         |     |     `-NullStmt {{.*}} <line:35:9>949// CHECK-NEXT:         |     |-ImplicitParamDecl {{.*}} <line:31:1> col:1 implicit .global_tid. 'const int *const restrict'950// CHECK-NEXT:         |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit .bound_tid. 'const int *const restrict'951// CHECK-NEXT:         |     |-ImplicitParamDecl {{.*}} <col:1> col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict'952// CHECK-NEXT:         |     |-VarDecl {{.*}} <line:32:8, col:16> col:12 used i 'int' cinit953// CHECK-NEXT:         |     | `-IntegerLiteral {{.*}} <col:16> 'int' 0954// CHECK-NEXT:         |     |-VarDecl {{.*}} <line:33:10, col:18> col:14 used i 'int' cinit955// CHECK-NEXT:         |     | `-IntegerLiteral {{.*}} <col:18> 'int' 0956// CHECK-NEXT:         |     `-VarDecl {{.*}} <line:34:12, col:20> col:16 used i 'int' cinit957// CHECK-NEXT:         |       `-IntegerLiteral {{.*}} <col:20> 'int' 0958// CHECK-NEXT:         |-DeclRefExpr {{.*}} <line:32:3> 'int' lvalue ParmVar {{.*}} 'x' 'int'959// CHECK-NEXT:         |-DeclRefExpr {{.*}} <line:33:5> 'int' lvalue ParmVar {{.*}} 'y' 'int'960// CHECK-NEXT:         `-DeclRefExpr {{.*}} <line:34:27> 'int' lvalue ParmVar {{.*}} 'z' 'int'961