brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.9 KiB · 6cf18fa Raw
189 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=45 -ferror-limit 100 %s -Wuninitialized2 3// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=45 -ferror-limit 100 %s -Wuninitialized4 5void foo() {6}7 8bool foobool(int argc) {9  return argc;10}11 12void xxx(int argc) {13  int cond; // expected-note {{initialize the variable 'cond' to silence this warning}}14#pragma omp distribute parallel for simd if(cond) // expected-warning {{variable 'cond' is uninitialized when used here}}15  for (int i = 0; i < 10; ++i)16    ;17}18 19struct S1; // expected-note {{declared here}}20 21template <class T, class S> // expected-note {{declared here}}22int tmain(T argc, S **argv) {23  T i, k;24#pragma omp target25#pragma omp teams26#pragma omp distribute parallel for simd if // expected-error {{expected '(' after 'if'}}27  for (i = 0; i < argc; ++i) foo();28#pragma omp target29#pragma omp teams30#pragma omp distribute parallel for simd if ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}31  for (i = 0; i < argc; ++i) foo();32#pragma omp target33#pragma omp teams34#pragma omp distribute parallel for simd if () // expected-error {{expected expression}}35  for (i = 0; i < argc; ++i) foo();36#pragma omp target37#pragma omp teams38#pragma omp distribute parallel for simd if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}39  for (i = 0; i < argc; ++i) foo();40#pragma omp target41#pragma omp teams42#pragma omp distribute parallel for simd if (k)) // expected-warning {{extra tokens at the end of '#pragma omp distribute parallel for simd' are ignored}}43  for (i = 0; i < argc; ++i) foo();44#pragma omp target45#pragma omp teams46#pragma omp distribute parallel for simd if (argc > 0 ? argv[1] : argv[2])47  for (i = 0; i < argc; ++i) foo();48#pragma omp target49#pragma omp teams50#pragma omp distribute parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'if' clause}}51  for (i = 0; i < argc; ++i) foo();52#pragma omp target53#pragma omp teams54#pragma omp distribute parallel for simd if (S) // expected-error {{'S' does not refer to a value}}55  for (i = 0; i < argc; ++i) foo();56#pragma omp target57#pragma omp teams58#pragma omp distribute parallel for simd if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}59  for (i = 0; i < argc; ++i) foo();60#pragma omp target61#pragma omp teams62#pragma omp distribute parallel for simd if (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}63  for (i = 0; i < argc; ++i) foo();64#pragma omp target65#pragma omp teams66#pragma omp distribute parallel for simd if(argc)67  for (i = 0; i < argc; ++i) foo();68#pragma omp target69#pragma omp teams70#pragma omp distribute parallel for simd if(parallel // expected-error {{use of undeclared identifier 'parallel'}} expected-error {{expected ')'}} expected-note {{to match this '('}}71  for (i = 0; i < argc; ++i) foo();72#pragma omp target73#pragma omp teams74#pragma omp distribute parallel for simd if(parallel : // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}75  for (i = 0; i < argc; ++i) foo();76#pragma omp target77#pragma omp teams78#pragma omp distribute parallel for simd if(parallel : argc // expected-error {{expected ')'}} expected-note {{to match this '('}}79  for (i = 0; i < argc; ++i) foo();80#pragma omp target81#pragma omp teams82#pragma omp distribute parallel for simd if(parallel : argc)83  for (i = 0; i < argc; ++i) foo();84#pragma omp target85#pragma omp teams86#pragma omp distribute parallel for simd if(parallel : argc) if (for:argc) // expected-error {{directive name modifier 'for' is not allowed for '#pragma omp distribute parallel for simd'}}87  for (i = 0; i < argc; ++i) foo();88#pragma omp target89#pragma omp teams90#pragma omp distribute parallel for simd if(parallel : argc) if (parallel:argc) // expected-error {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'if' clause with 'parallel' name modifier}}91  for (i = 0; i < argc; ++i) foo();92#pragma omp target93#pragma omp teams94#pragma omp distribute parallel for simd if(parallel : argc) if (argc) // expected-error {{no more 'if' clause is allowed}} expected-note {{previous clause with directive name modifier specified here}}95  for (i = 0; i < argc; ++i) foo();96#pragma omp target97#pragma omp teams98#pragma omp distribute parallel for simd if(distribute : argc) // expected-error {{directive name modifier 'distribute' is not allowed for '#pragma omp distribute parallel for simd'}}99  for (i = 0; i < argc; ++i) foo();100 101  return 0;102}103 104int main(int argc, char **argv) {105  int i, k;106#pragma omp target107#pragma omp teams108#pragma omp distribute parallel for simd if // expected-error {{expected '(' after 'if'}}109  for (i = 0; i < argc; ++i) foo();110#pragma omp target111#pragma omp teams112#pragma omp distribute parallel for simd if ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}113  for (i = 0; i < argc; ++i) foo();114#pragma omp target115#pragma omp teams116#pragma omp distribute parallel for simd if () // expected-error {{expected expression}}117  for (i = 0; i < argc; ++i) foo();118#pragma omp target119#pragma omp teams120#pragma omp distribute parallel for simd if (argc // expected-error {{expected ')'}} expected-note {{to match this '('}}121  for (i = 0; i < argc; ++i) foo();122#pragma omp target123#pragma omp teams124#pragma omp distribute parallel for simd if (k)) // expected-warning {{extra tokens at the end of '#pragma omp distribute parallel for simd' are ignored}}125  for (i = 0; i < argc; ++i) foo();126#pragma omp target127#pragma omp teams128#pragma omp distribute parallel for simd if (argc > 0 ? argv[1] : argv[2])129  for (i = 0; i < argc; ++i) foo();130#pragma omp target131#pragma omp teams132#pragma omp distribute parallel for simd if (foobool(argc)), if (true) // expected-error {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'if' clause}}133  for (i = 0; i < argc; ++i) foo();134#pragma omp target135#pragma omp teams136#pragma omp distribute parallel for simd if (S1) // expected-error {{'S1' does not refer to a value}}137  for (i = 0; i < argc; ++i) foo();138#pragma omp target139#pragma omp teams140#pragma omp distribute parallel for simd if (argv[1]=2) // expected-error {{expected ')'}} expected-note {{to match this '('}}141  for (i = 0; i < argc; ++i) foo();142#pragma omp target143#pragma omp teams144#pragma omp distribute parallel for simd if (argc argc) // expected-error {{expected ')'}} expected-note {{to match this '('}}145  for (i = 0; i < argc; ++i) foo();146#pragma omp target147#pragma omp teams148#pragma omp distribute parallel for simd if (1 0) // expected-error {{expected ')'}} expected-note {{to match this '('}}149  for (i = 0; i < argc; ++i) foo();150#pragma omp target151#pragma omp teams152#pragma omp distribute parallel for simd if(if(tmain(argc, argv) // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}153  for (i = 0; i < argc; ++i) foo();154#pragma omp target155#pragma omp teams156#pragma omp distribute parallel for simd if(parallel // expected-error {{use of undeclared identifier 'parallel'}} expected-error {{expected ')'}} expected-note {{to match this '('}}157  for (i = 0; i < argc; ++i) foo();158#pragma omp target159#pragma omp teams160#pragma omp distribute parallel for simd if(parallel : // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}}161  for (i = 0; i < argc; ++i) foo();162#pragma omp target163#pragma omp teams164#pragma omp distribute parallel for simd if(parallel : argc // expected-error {{expected ')'}} expected-note {{to match this '('}}165  for (i = 0; i < argc; ++i) foo();166#pragma omp target167#pragma omp teams168#pragma omp distribute parallel for simd if(parallel : argc)169  for (i = 0; i < argc; ++i) foo();170#pragma omp target171#pragma omp teams172#pragma omp distribute parallel for simd if(parallel : argc) if (for:argc) // expected-error {{directive name modifier 'for' is not allowed for '#pragma omp distribute parallel for simd'}}173  for (i = 0; i < argc; ++i) foo();174#pragma omp target175#pragma omp teams176#pragma omp distribute parallel for simd if(parallel : argc) if (parallel:argc) // expected-error {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'if' clause with 'parallel' name modifier}}177  for (i = 0; i < argc; ++i) foo();178#pragma omp target179#pragma omp teams180#pragma omp distribute parallel for simd if(parallel : argc) if (argc) // expected-error {{no more 'if' clause is allowed}} expected-note {{previous clause with directive name modifier specified here}}181  for (i = 0; i < argc; ++i) foo();182#pragma omp target183#pragma omp teams184#pragma omp distribute parallel for simd if(distribute : argc) // expected-error {{directive name modifier 'distribute' is not allowed for '#pragma omp distribute parallel for simd'}}185  for (i = 0; i < argc; ++i) foo();186 187  return tmain(argc, argv);188}189