brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · ea53482 Raw
102 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -std=c++11 %s -Wuninitialized2 3// RUN: %clang_cc1 -verify -fopenmp-simd -std=c++11 %s -Wuninitialized4 5void xxx(int argc) {6  int x; // expected-note {{initialize the variable 'x' to silence this warning}}7#pragma omp target simd8  for (int i = 0; i < 10; ++i)9    argc = x; // expected-warning {{variable 'x' is uninitialized when used here}}10}11 12void foo() {13}14 15static int pvt;16#pragma omp threadprivate(pvt)17 18#pragma omp target simd // expected-error {{unexpected OpenMP directive '#pragma omp target simd'}}19 20int main(int argc, char **argv) {21#pragma omp target simd { // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}22  for (int i = 0; i < argc; ++i)23    foo();24#pragma omp target simd ( // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}25  for (int i = 0; i < argc; ++i)26    foo();27#pragma omp target simd[ // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}28  for (int i = 0; i < argc; ++i)29    foo();30#pragma omp target simd] // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}31  for (int i = 0; i < argc; ++i)32    foo();33#pragma omp target simd) // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}34  for (int i = 0; i < argc; ++i)35    foo();36#pragma omp target simd } // expected-warning {{extra tokens at the end of '#pragma omp target simd' are ignored}}37  for (int i = 0; i < argc; ++i)38    foo();39#pragma omp target simd40  for (int i = 0; i < argc; ++i)41    foo();42// expected-warning@+1 {{extra tokens at the end of '#pragma omp target simd' are ignored}}43#pragma omp target simd unknown()44  for (int i = 0; i < argc; ++i)45    foo();46L1:47  for (int i = 0; i < argc; ++i)48    foo();49#pragma omp target simd50  for (int i = 0; i < argc; ++i)51    foo();52#pragma omp target simd53  for (int i = 0; i < argc; ++i) {54    goto L1; // expected-error {{use of undeclared label 'L1'}}55    argc++;56  }57 58  for (int i = 0; i < 10; ++i) {59    switch (argc) {60    case (0):61#pragma omp target simd62      for (int i = 0; i < argc; ++i) {63        foo();64        break; // expected-error {{'break' statement cannot be used in OpenMP for loop}}65        continue;66      }67    default:68      break;69    }70  }71#pragma omp target simd default(none) // expected-error {{unexpected OpenMP clause 'default' in directive '#pragma omp target simd'}}72  for (int i = 0; i < 10; ++i)73    ++argc;74 75  goto L2; // expected-error {{use of undeclared label 'L2'}}76#pragma omp target simd77  for (int i = 0; i < argc; ++i)78  L2:79  foo();80#pragma omp target simd81  for (int i = 0; i < argc; ++i) {82    return 1; // expected-error {{cannot return from OpenMP region}}83  }84 85  [[]] // expected-error {{an attribute list cannot appear here}}86#pragma omp target simd87      for (int n = 0; n < 100; ++n) {88  }89 90#pragma omp target simd copyin(pvt) // expected-error {{unexpected OpenMP clause 'copyin' in directive '#pragma omp target simd'}}91  for (int n = 0; n < 100; ++n) {}92 93  return 0;94}95 96void test_ordered() {97#pragma omp target simd ordered // expected-error {{unexpected OpenMP clause 'ordered' in directive '#pragma omp target simd'}}98  for (int i = 0; i < 16; ++i)99    ;100}101 102