brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 788fffc Raw
56 lines · c
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3void f1(void) {4  int x = 0;5/* expected-error@+1 {{'#pragma fp_contract' can only appear at file scope or at the start of a compound statement}} */6#pragma STDC FP_CONTRACT ON7}8 9void f2(void) {10  #pragma STDC FP_CONTRACT OFF11  #pragma STDC FP_CONTRACT ON 12}13 14struct S1 {15// expected-error@+1 {{this pragma cannot appear in struct declaration}}16#pragma STDC FP_CONTRACT ON17  float f1;18};19 20union U1 {21  float f1;22  float f2;23// expected-error@+1 {{this pragma cannot appear in union declaration}}24#pragma STDC FP_CONTRACT ON25};26 27float fp_reassoc_fail(float a, float b) {28  // CHECK-LABEL: fp_reassoc_fail29  // expected-error@+2{{'#pragma clang fp' can only appear at file scope or at the start of a compound statement}}30  float c = a + b;31#pragma clang fp reassociate(off)32  return c - b;33}34 35float fp_reassoc_no_fast(float a, float b) {36// CHECK-LABEL: fp_reassoc_no_fast37// expected-error@+1{{unexpected argument 'fast' to '#pragma clang fp reassociate'; expected 'on' or 'off'}}38#pragma clang fp reassociate(fast)39  return a - b;40}41 42float fp_recip_fail(float a, float b) {43  // CHECK-LABEL: fp_recip_fail44  // expected-error@+2{{'#pragma clang fp' can only appear at file scope or at the start of a compound statement}}45  float c = a + b;46#pragma clang fp reciprocal(off)47  return c - b;48}49 50float fp_recip_no_fast(float a, float b) {51// CHECK-LABEL: fp_recip_no_fast52// expected-error@+1{{unexpected argument 'fast' to '#pragma clang fp reciprocal'; expected 'on' or 'off'}}53#pragma clang fp reciprocal(fast)54  return a - b;55}56