brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.3 KiB · e96562e Raw
207 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=51 -ferror-limit 100 %s -Wuninitialized2// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=60 -ferror-limit 100 %s -Wuninitialized3 4// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=51 -ferror-limit 100 %s -Wuninitialized5// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=60 -ferror-limit 100 %s -Wuninitialized6 7// Test outside of an executable context.8#pragma omp error severity(warning) message("msg") at(compilation) // expected-warning {{msg}}9 10template <class T>11T tmain(T argc) {12  if (argc)13#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}14    if (argc) {15#pragma omp error // expected-error {{ERROR}}16    }17  while (argc)18#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}19    while (argc) {20#pragma omp error // expected-error {{ERROR}}21    }22  do23#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}24    while (argc)25      ;26  do {27#pragma omp error // expected-error {{ERROR}}28  } while (argc);29  switch (argc)30#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}31    switch (argc)32    case 1:33#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}34  switch (argc)35  case 1: {36#pragma omp error // expected-error {{ERROR}}37  }38  switch (argc) {39#pragma omp error // expected-error {{ERROR}}40  case 1:41#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}42    break;43  default: {44#pragma omp error // expected-error {{ERROR}}45  } break;46  }47  for (;;)48#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}49    for (;;) {50#pragma omp error // expected-error {{ERROR}}51    }52label:53#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}54label1 : {55#pragma omp error // expected-error {{ERROR}}56}57if (1)58  label2:59#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}60 61// expected-error@+1 {{ERROR}}62#pragma omp error at() // expected-error {{expected 'compilation' or 'execution' in OpenMP clause 'at'}}63 64// expected-error@+1 {{ERROR}}65#pragma omp error at(up) // expected-error {{expected 'compilation' or 'execution' in OpenMP clause 'at'}}66 67// expected-error@+3 {{ERROR}}68// expected-error@+2 {{expected ')'}}69// expected-note@+1 {{to match this '('}}70#pragma omp error at(up(a)) // expected-error {{expected 'compilation' or 'execution' in OpenMP clause 'at'}}71 72#pragma omp error at(execution) // no error73 74#pragma omp error at(compilation) // expected-error {{ERROR}}75 76// expected-error@+1 {{ERROR}}77#pragma omp error at(compilation) at(execution) //expected-error {{directive '#pragma omp error' cannot contain more than one 'at' clause}}78 79// expected-error@+1 {{ERROR}}80#pragma omp error severity() // expected-error {{expected 'fatal' or 'warning' in OpenMP clause 'severity'}}81// expected-error@+1 {{ERROR}}82#pragma omp error severity(xyz) // expected-error {{expected 'fatal' or 'warning' in OpenMP clause 'severity'}}83// expected-error@+1 {{ERROR}}84#pragma omp error severity(fatal) severity(warning) // expected-error {{directive '#pragma omp error' cannot contain more than one 'severity' clause}}85 86// expected-error@+1 {{ERROR}}87#pragma omp error severity(fatal) severity(fatal) // expected-error {{directive '#pragma omp error' cannot contain more than one 'severity' clause}}88 89// expected-warning@+2 {{WARNING}}90// expected-warning@+1 {{WARNING}}91#pragma omp error severity(warning) severity(warning) // expected-error {{directive '#pragma omp error' cannot contain more than one 'severity' clause}}92 93// expected-warning@+1 {{WARNING}}94#pragma omp error severity(warning) // expected-warning {{WARNING}}95#pragma omp error severity(fatal) // expected-error {{ERROR}}96 97// expected-warning@+1 {{WARNING}}98#pragma omp error at(compilation) severity(warning) // expected-warning {{WARNING}}99#pragma omp error at(execution) severity(warning) // no error, diagnosic at runtime100#pragma omp error at(compilation) severity(fatal) // expected-error {{ERROR}}101#pragma omp error at(execution) severity(fatal) // no error, error at runtime102 103#pragma omp error message("GPU compiler is needed.") // expected-error {{GPU compiler is needed}}104#pragma omp error at(compilation) message("GPU compiler is needed.") // expected-error {{GPU compiler is needed}}105#pragma omp error at(execution) message("GPU compiler is needed.") // no error106// expected-warning@+1 {{GPU compiler is needed.}}107#pragma omp error severity(warning) message("GPU compiler is needed.") // expected-warning {{GPU compiler is needed.}}108#pragma omp error severity(fatal) message("GPU compiler is needed.") // expected-error {{GPU compiler is needed}}109// expected-warning@+1 {{GPU compiler is needed.}}110#pragma omp error at(compilation) severity(warning) message("GPU compiler is needed.") // expected-warning {{GPU compiler is needed.}}111#pragma omp error at(compilation) severity(fatal) message("GPU compiler is needed.") // expected-error {{GPU compiler is needed.}}112#pragma omp error at(execution) severity(warning) message("GPU compiler is needed.") // no warning warning will emit at runtime.113#pragma omp error at(execution) severity(fatal) message("GPU compiler is needed.") // no warning warning will emit at runtime.114 115// expected-error@+1 {{GPU compiler is needed.}}116#pragma omp error message("GPU compiler is needed.") message("GPU compiler is needed.") // expected-error {{directive '#pragma omp error' cannot contain more than one 'message' clause}}117  int a;118// expected-warning@+1 {{expected string in 'clause message' - ignoring}}119#pragma omp error message(a) // expected-error {{ERROR}}120  char str[] = "msg";121// expected-warning@+1 {{expected string literal in 'clause message' - ignoring}}122#pragma omp error message(str) // expected-error {{ERROR}}123#pragma omp error at(execution) message(str) // no error124// expected-error@+1 {{ERROR}}125#pragma omp error message() // expected-error {{expected expression}}126  return T();127}128 129#pragma omp error at(execution) // expected-error {{unexpected 'execution' modifier in non-executable context}}130 131#pragma omp error at(compilation) // expected-error {{ERROR}}132class A {133 134#pragma omp error at(compilation) // expected-error {{ERROR}}135 136#pragma omp error at(execution) // expected-error {{unexpected 'execution' modifier in non-executable context}}137  int A;138};139 140int main(int argc, char **argv) {141// expected-error@+1 {{ERROR}}142#pragma omp error143  ;144// expected-error@+1 {{ERROR}}145#pragma omp error untied  // expected-error {{unexpected OpenMP clause 'untied' in directive '#pragma omp error'}}146  if (argc)147#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}148    if (argc) {149// expected-error@+1 {{ERROR}}150#pragma omp error151    }152  while (argc)153#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}154    while (argc) {155// expected-error@+1 {{ERROR}}156#pragma omp error157    }158  do159#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}160    while (argc)161      ;162  do {163// expected-error@+1 {{ERROR}}164#pragma omp error165  } while (argc);166  switch (argc)167#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}168    switch (argc)169    case 1:170#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}171  switch (argc)172  case 1: {173// expected-error@+1 {{ERROR}}174#pragma omp error175  }176  switch (argc) {177// expected-error@+1 {{ERROR}}178#pragma omp error179  case 1:180// expected-error@+1 {{'#pragma omp error' cannot be an immediate substatement}}181#pragma omp error182    break;183  default: {184// expected-error@+1 {{ERROR}}185#pragma omp error186  } break;187  }188  for (;;)189#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}190    for (;;) {191// expected-error@+1 {{ERROR}}192#pragma omp error193    }194label:195// expected-error@+1 {{'#pragma omp error' cannot be an immediate substatement}}196#pragma omp error197label1 : {198// expected-error@+1 {{ERROR}}199#pragma omp error200}201if (1)202  label2:203#pragma omp error // expected-error {{'#pragma omp error' cannot be an immediate substatement}}204 205  return tmain(argc);// expected-note {{in instantiation of function template specialization 'tmain<int>' requested here}}206}207