brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.7 KiB · 9ee2faa Raw
457 lines · cpp
1// RUN: %clang_cc1 %s -fopenacc -ast-dump | FileCheck %s2 3// Test this with PCH.4// RUN: %clang_cc1 %s -fopenacc -emit-pch -o %t %s5// RUN: %clang_cc1 %s -fopenacc -include-pch %t -ast-dump-all | FileCheck %s6#ifndef PCH_HELPER7#define PCH_HELPER8 9void NormalUses() {10  // CHECK: FunctionDecl{{.*}}NormalUses11  // CHECK-NEXT: CompoundStmt12 13  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>14  // CHECK-NEXT: gang clause dim15  // CHECK-NEXT: ConstantExpr{{.*}} 'int'16  // CHECK-NEXT: value: Int 117  // CHECK-NEXT: IntegerLiteral{{.*}}'int' 118  // CHECK-NEXT: ForStmt19  // CHECK-NEXT: DeclStmt20  // CHECK-NEXT: VarDecl{{.*}} i 'int'21  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 022  // CHECK-NEXT: <<<NULL>>>23  // CHECK-NEXT: BinaryOperator{{.*}}'<'24  // CHECK-NEXT: ImplicitCastExpr25  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'26  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 527  // CHECK-NEXT: UnaryOperator{{.*}}++28  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'29  // CHECK-NEXT: NullStmt30#pragma acc loop gang(dim:1)31  for(int i = 0; i < 5; ++i);32 33  int Val;34  // CHECK-NEXT: DeclStmt35  // CHECK-NEXT: VarDecl{{.*}} used Val 'int'36 37  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>38  // CHECK-NEXT: gang clause static39  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>40  // CHECK-NEXT: DeclRefExpr{{.*}} 'Val' 'int'41  // CHECK-NEXT: ForStmt42  // CHECK-NEXT: DeclStmt43  // CHECK-NEXT: VarDecl{{.*}} i 'int'44  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 045  // CHECK-NEXT: <<<NULL>>>46  // CHECK-NEXT: BinaryOperator{{.*}}'<'47  // CHECK-NEXT: ImplicitCastExpr48  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'49  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 550  // CHECK-NEXT: UnaryOperator{{.*}}++51  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'52  // CHECK-NEXT: NullStmt53#pragma acc loop gang(static:Val)54  for(int i = 0; i < 5; ++i);55 56  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} kernels57  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: kernels58  // CHECK-NEXT: gang clause num59  // CHECK-NEXT: IntegerLiteral{{.*}}'int' 160  // CHECK-NEXT: gang clause static61  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>62  // CHECK-NEXT: DeclRefExpr{{.*}} 'Val' 'int'63  // CHECK-NEXT: ForStmt64  // CHECK-NEXT: DeclStmt65  // CHECK-NEXT: VarDecl{{.*}} i 'int'66  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 067  // CHECK-NEXT: <<<NULL>>>68  // CHECK-NEXT: BinaryOperator{{.*}}'<'69  // CHECK-NEXT: ImplicitCastExpr70  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'71  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 572  // CHECK-NEXT: UnaryOperator{{.*}}++73  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'74  // CHECK-NEXT: NullStmt75#pragma acc kernels76#pragma acc loop gang(num:1) gang(static:Val)77  for(int i = 0; i < 5; ++i);78 79  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} parallel80  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: parallel81  // CHECK-NEXT: gang clause dim static82  // CHECK-NEXT: ConstantExpr{{.*}} 'int'83  // CHECK-NEXT: value: Int 184  // CHECK-NEXT: IntegerLiteral{{.*}}'int' 185  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>86  // CHECK-NEXT: DeclRefExpr{{.*}} 'Val' 'int'87  // CHECK-NEXT: ForStmt88  // CHECK-NEXT: DeclStmt89  // CHECK-NEXT: VarDecl{{.*}} i 'int'90  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 091  // CHECK-NEXT: <<<NULL>>>92  // CHECK-NEXT: BinaryOperator{{.*}}'<'93  // CHECK-NEXT: ImplicitCastExpr94  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'95  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 596  // CHECK-NEXT: UnaryOperator{{.*}}++97  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'98  // CHECK-NEXT: NullStmt99#pragma acc parallel100#pragma acc loop gang(dim:1, static:Val)101  for(int i = 0; i < 5; ++i);102 103  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} serial104  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: serial105  // CHECK-NEXT: gang clause static106  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>107  // CHECK-NEXT: DeclRefExpr{{.*}} 'Val' 'int'108  // CHECK-NEXT: ForStmt109  // CHECK-NEXT: DeclStmt110  // CHECK-NEXT: VarDecl{{.*}} i 'int'111  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0112  // CHECK-NEXT: <<<NULL>>>113  // CHECK-NEXT: BinaryOperator{{.*}}'<'114  // CHECK-NEXT: ImplicitCastExpr115  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'116  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5117  // CHECK-NEXT: UnaryOperator{{.*}}++118  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'119  // CHECK-NEXT: NullStmt120#pragma acc serial121#pragma acc loop gang(static:Val)122  for(int i = 0; i < 5; ++i);123 124  // CHECK-NEXT: OpenACCComputeConstruct {{.*}}serial125  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: serial126  // CHECK-NEXT: gang clause static127  // CHECK-NEXT: OpenACCAsteriskSizeExpr128  // CHECK-NEXT: ForStmt129  // CHECK-NEXT: DeclStmt130  // CHECK-NEXT: VarDecl{{.*}} i 'int'131  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0132  // CHECK-NEXT: <<<NULL>>>133  // CHECK-NEXT: BinaryOperator{{.*}}'<'134  // CHECK-NEXT: ImplicitCastExpr135  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'136  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5137  // CHECK-NEXT: UnaryOperator{{.*}}++138  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'139  // CHECK-NEXT: NullStmt140#pragma acc serial141#pragma acc loop gang(static:*)142  for(int i = 0; i < 5; ++i);143 144  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} serial145  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: serial146  // CHECK-NEXT: gang clause147  // CHECK-NEXT: ForStmt148  // CHECK-NEXT: DeclStmt149  // CHECK-NEXT: VarDecl{{.*}} i 'int'150  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0151  // CHECK-NEXT: <<<NULL>>>152  // CHECK-NEXT: BinaryOperator{{.*}}'<'153  // CHECK-NEXT: ImplicitCastExpr154  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'155  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5156  // CHECK-NEXT: UnaryOperator{{.*}}++157  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'158  // CHECK-NEXT: NullStmt159#pragma acc serial160#pragma acc loop gang161  for(int i = 0; i < 5; ++i);162}163 164template<typename T, unsigned One>165void TemplateUses(T Val) {166  // CHECK: FunctionTemplateDecl{{.*}}TemplateUses167  // CHECK-NEXT: TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T168  // CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} referenced 'unsigned int' depth 0 index 1 One169  // CHECK-NEXT: FunctionDecl{{.*}} TemplateUses 'void (T)'170  // CHECK-NEXT: ParmVarDecl{{.*}} referenced Val 'T'171  // CHECK-NEXT: CompoundStmt172 173  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>174  // CHECK-NEXT: gang clause dim175  // CHECK-NEXT: DeclRefExpr{{.*}}'unsigned int' NonTypeTemplateParm{{.*}} 'One' 'unsigned int'176  // CHECK-NEXT: ForStmt177  // CHECK-NEXT: DeclStmt178  // CHECK-NEXT: VarDecl{{.*}} i 'int'179  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0180  // CHECK-NEXT: <<<NULL>>>181  // CHECK-NEXT: BinaryOperator{{.*}}'<'182  // CHECK-NEXT: ImplicitCastExpr183  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'184  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5185  // CHECK-NEXT: UnaryOperator{{.*}}++186  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'187  // CHECK-NEXT: NullStmt188#pragma acc loop gang(dim:One)189  for(int i = 0; i < 5; ++i);190 191  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>192  // CHECK-NEXT: gang clause static193  // CHECK-NEXT: DeclRefExpr{{.*}}'T' lvalue ParmVar{{.*}} 'Val' 'T'194  // CHECK-NEXT: ForStmt195  // CHECK-NEXT: DeclStmt196  // CHECK-NEXT: VarDecl{{.*}} i 'int'197  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0198  // CHECK-NEXT: <<<NULL>>>199  // CHECK-NEXT: BinaryOperator{{.*}}'<'200  // CHECK-NEXT: ImplicitCastExpr201  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'202  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5203  // CHECK-NEXT: UnaryOperator{{.*}}++204  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'205  // CHECK-NEXT: NullStmt206#pragma acc loop gang(static:Val)207  for(int i = 0; i < 5; ++i);208 209  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>210  // CHECK-NEXT: gang clause static211  // CHECK-NEXT: OpenACCAsteriskSizeExpr212  // CHECK-NEXT: ForStmt213  // CHECK-NEXT: DeclStmt214  // CHECK-NEXT: VarDecl{{.*}} i 'int'215  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0216  // CHECK-NEXT: <<<NULL>>>217  // CHECK-NEXT: BinaryOperator{{.*}}'<'218  // CHECK-NEXT: ImplicitCastExpr219  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'220  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5221  // CHECK-NEXT: UnaryOperator{{.*}}++222  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'223  // CHECK-NEXT: NullStmt224#pragma acc loop gang(static:*)225  for(int i = 0; i < 5; ++i);226 227  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} parallel228  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: parallel229  // CHECK-NEXT: gang clause dim230  // CHECK-NEXT: DeclRefExpr{{.*}}'unsigned int' NonTypeTemplateParm{{.*}} 'One' 'unsigned int'231  // CHECK-NEXT: gang clause static232  // CHECK-NEXT: DeclRefExpr{{.*}}'T' lvalue ParmVar{{.*}} 'Val' 'T'233  // CHECK-NEXT: ForStmt234  // CHECK-NEXT: DeclStmt235  // CHECK-NEXT: VarDecl{{.*}} i 'int'236  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0237  // CHECK-NEXT: <<<NULL>>>238  // CHECK-NEXT: BinaryOperator{{.*}}'<'239  // CHECK-NEXT: ImplicitCastExpr240  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'241  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5242  // CHECK-NEXT: UnaryOperator{{.*}}++243  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'244  // CHECK-NEXT: NullStmt245#pragma acc parallel246#pragma acc loop gang(dim:One) gang(static:Val)247  for(int i = 0; i < 5; ++i);248 249  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} parallel250  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: parallel251  // CHECK-NEXT: gang clause dim static252  // CHECK-NEXT: DeclRefExpr{{.*}}'unsigned int' NonTypeTemplateParm{{.*}} 'One' 'unsigned int'253  // CHECK-NEXT: DeclRefExpr{{.*}}'T' lvalue ParmVar{{.*}} 'Val' 'T'254  // CHECK-NEXT: ForStmt255  // CHECK-NEXT: DeclStmt256  // CHECK-NEXT: VarDecl{{.*}} i 'int'257  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0258  // CHECK-NEXT: <<<NULL>>>259  // CHECK-NEXT: BinaryOperator{{.*}}'<'260  // CHECK-NEXT: ImplicitCastExpr261  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'262  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5263  // CHECK-NEXT: UnaryOperator{{.*}}++264  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'265  // CHECK-NEXT: NullStmt266#pragma acc parallel267#pragma acc loop gang(dim:One, static:Val)268  for(int i = 0; i < 5; ++i);269 270  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} serial271  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: serial272  // CHECK-NEXT: gang clause static273  // CHECK-NEXT: DeclRefExpr{{.*}}'T' lvalue ParmVar{{.*}} 'Val' 'T'274  // CHECK-NEXT: ForStmt275  // CHECK-NEXT: DeclStmt276  // CHECK-NEXT: VarDecl{{.*}} i 'int'277  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0278  // CHECK-NEXT: <<<NULL>>>279  // CHECK-NEXT: BinaryOperator{{.*}}'<'280  // CHECK-NEXT: ImplicitCastExpr281  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'282  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5283  // CHECK-NEXT: UnaryOperator{{.*}}++284  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'285  // CHECK-NEXT: NullStmt286#pragma acc serial287#pragma acc loop gang(static:Val)288  for(int i = 0; i < 5; ++i);289 290  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} serial291  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: serial292  // CHECK-NEXT: gang clause293  // CHECK-NEXT: ForStmt294  // CHECK-NEXT: DeclStmt295  // CHECK-NEXT: VarDecl{{.*}} i 'int'296  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0297  // CHECK-NEXT: <<<NULL>>>298  // CHECK-NEXT: BinaryOperator{{.*}}'<'299  // CHECK-NEXT: ImplicitCastExpr300  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'301  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5302  // CHECK-NEXT: UnaryOperator{{.*}}++303  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'304  // CHECK-NEXT: NullStmt305#pragma acc serial306#pragma acc loop gang307  for(int i = 0; i < 5; ++i);308 309  // Instantiation:310  // CHECK-NEXT: FunctionDecl{{.*}} used TemplateUses 'void (int)' implicit_instantiation311  // CHECK-NEXT: TemplateArgument type 'int'312  // CHECK-NEXT: BuiltinType{{.*}} 'int'313  // CHECK-NEXT: TemplateArgument integral '1U'314  // CHECK-NEXT: ParmVarDecl{{.*}} used Val 'int'315  // CHECK-NEXT: CompoundStmt316  //317  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>318  // CHECK-NEXT: gang clause dim319  // CHECK-NEXT: ConstantExpr{{.*}} 'unsigned int'320  // CHECK-NEXT: value: Int 1321  // CHECK-NEXT: SubstNonTypeTemplateParmExpr{{.*}}'unsigned int'322  // CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'unsigned int' depth 0 index 1 One323  // CHECK-NEXT: IntegerLiteral{{.*}}'unsigned int' 1324  // CHECK-NEXT: ForStmt325  // CHECK-NEXT: DeclStmt326  // CHECK-NEXT: VarDecl{{.*}} i 'int'327  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0328  // CHECK-NEXT: <<<NULL>>>329  // CHECK-NEXT: BinaryOperator{{.*}}'<'330  // CHECK-NEXT: ImplicitCastExpr331  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'332  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5333  // CHECK-NEXT: UnaryOperator{{.*}}++334  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'335  // CHECK-NEXT: NullStmt336  //337  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>338  // CHECK-NEXT: gang clause static339  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>340  // CHECK-NEXT: DeclRefExpr{{.*}}'int' lvalue ParmVar{{.*}} 'Val' 'int'341  // CHECK-NEXT: ForStmt342  // CHECK-NEXT: DeclStmt343  // CHECK-NEXT: VarDecl{{.*}} i 'int'344  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0345  // CHECK-NEXT: <<<NULL>>>346  // CHECK-NEXT: BinaryOperator{{.*}}'<'347  // CHECK-NEXT: ImplicitCastExpr348  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'349  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5350  // CHECK-NEXT: UnaryOperator{{.*}}++351  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'352  // CHECK-NEXT: NullStmt353  //354  // CHECK-NEXT: OpenACCLoopConstruct{{.*}}<orphan>355  // CHECK-NEXT: gang clause static356  // CHECK-NEXT: OpenACCAsteriskSizeExpr357  // CHECK-NEXT: ForStmt358  // CHECK-NEXT: DeclStmt359  // CHECK-NEXT: VarDecl{{.*}} i 'int'360  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0361  // CHECK-NEXT: <<<NULL>>>362  // CHECK-NEXT: BinaryOperator{{.*}}'<'363  // CHECK-NEXT: ImplicitCastExpr364  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'365  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5366  // CHECK-NEXT: UnaryOperator{{.*}}++367  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'368  // CHECK-NEXT: NullStmt369  //370  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} parallel371  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: parallel372  // CHECK-NEXT: gang clause dim373  // CHECK-NEXT: ConstantExpr{{.*}} 'unsigned int'374  // CHECK-NEXT: value: Int 1375  // CHECK-NEXT: SubstNonTypeTemplateParmExpr{{.*}}'unsigned int'376  // CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'unsigned int' depth 0 index 1 One377  // CHECK-NEXT: IntegerLiteral{{.*}}'unsigned int' 1378  // CHECK-NEXT: gang clause static379  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>380  // CHECK-NEXT: DeclRefExpr{{.*}}'int' lvalue ParmVar{{.*}} 'Val' 'int'381  // CHECK-NEXT: ForStmt382  // CHECK-NEXT: DeclStmt383  // CHECK-NEXT: VarDecl{{.*}} i 'int'384  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0385  // CHECK-NEXT: <<<NULL>>>386  // CHECK-NEXT: BinaryOperator{{.*}}'<'387  // CHECK-NEXT: ImplicitCastExpr388  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'389  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5390  // CHECK-NEXT: UnaryOperator{{.*}}++391  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'392  // CHECK-NEXT: NullStmt393  //394  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} parallel395  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: parallel396  // CHECK-NEXT: gang clause dim static397  // CHECK-NEXT: ConstantExpr{{.*}} 'unsigned int'398  // CHECK-NEXT: value: Int 1399  // CHECK-NEXT: SubstNonTypeTemplateParmExpr{{.*}}'unsigned int'400  // CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'unsigned int' depth 0 index 1 One401  // CHECK-NEXT: IntegerLiteral{{.*}}'unsigned int' 1402  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>403  // CHECK-NEXT: DeclRefExpr{{.*}}'int' lvalue ParmVar{{.*}} 'Val' 'int'404  // CHECK-NEXT: ForStmt405  // CHECK-NEXT: DeclStmt406  // CHECK-NEXT: VarDecl{{.*}} i 'int'407  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0408  // CHECK-NEXT: <<<NULL>>>409  // CHECK-NEXT: BinaryOperator{{.*}}'<'410  // CHECK-NEXT: ImplicitCastExpr411  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'412  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5413  // CHECK-NEXT: UnaryOperator{{.*}}++414  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'415  // CHECK-NEXT: NullStmt416  //417  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} serial418  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: serial419  // CHECK-NEXT: gang clause static420  // CHECK-NEXT: ImplicitCastExpr{{.*}}'int' <LValueToRValue>421  // CHECK-NEXT: DeclRefExpr{{.*}}'int' lvalue ParmVar{{.*}} 'Val' 'int'422  // CHECK-NEXT: ForStmt423  // CHECK-NEXT: DeclStmt424  // CHECK-NEXT: VarDecl{{.*}} i 'int'425  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0426  // CHECK-NEXT: <<<NULL>>>427  // CHECK-NEXT: BinaryOperator{{.*}}'<'428  // CHECK-NEXT: ImplicitCastExpr429  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'430  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5431  // CHECK-NEXT: UnaryOperator{{.*}}++432  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'433  // CHECK-NEXT: NullStmt434  //435  // CHECK-NEXT: OpenACCComputeConstruct {{.*}} serial436  // CHECK-NEXT: OpenACCLoopConstruct{{.*}} parent: serial437  // CHECK-NEXT: gang clause438  // CHECK-NEXT: ForStmt439  // CHECK-NEXT: DeclStmt440  // CHECK-NEXT: VarDecl{{.*}} i 'int'441  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 0442  // CHECK-NEXT: <<<NULL>>>443  // CHECK-NEXT: BinaryOperator{{.*}}'<'444  // CHECK-NEXT: ImplicitCastExpr445  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'446  // CHECK-NEXT: IntegerLiteral{{.*}} 'int' 5447  // CHECK-NEXT: UnaryOperator{{.*}}++448  // CHECK-NEXT: DeclRefExpr{{.*}}'i' 'int'449  // CHECK-NEXT: NullStmt450}451 452void inst() {453  TemplateUses<int, 1>(5);454}455 456#endif // PCH_HELPER457