brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 2b02def Raw
54 lines · c
1// RUN: %clang_cc1 -Weverything -xc++ -std=c++11 -DCXX11 -verify %s2// RUN: %clang_cc1 -Weverything -xc++ -std=c++03 -DCXX03 -verify %s3// RUN: %clang_cc1 -Weverything -xobjective-c -DOBJC -verify %s4// RUN: %clang_cc1 -Weverything -std=c11 -xc -DC11 -verify %s5// RUN: %clang_cc1 -pedantic    -std=c11 -xc -DC11 -verify %s6// RUN: %clang_cc1 -Weverything -std=c11 -xc -fms-extensions -DMS -verify %s7// RUN: %clang_cc1 -Weverything -std=c2x -xc -DC23 -verify %s8// RUN: %clang_cc1 -pedantic    -std=c2x -xc -DC23 -verify -Wpre-c23-compat %s9// RUN: %clang_cc1 -Weverything -std=c23 -xc -DC23 -verify %s10// RUN: %clang_cc1 -pedantic    -std=c23 -xc -DC23 -verify -Wpre-c23-compat %s11// RUN: %clang_cc1 -Weverything -std=c23 -xc -fms-extensions -DC23 -verify %s12 13enum X : int {e};14#if defined(CXX11)15// expected-warning@-2{{enumeration types with a fixed underlying type are incompatible with C++98}}16#elif defined(CXX03)17// expected-warning@-4{{enumeration types with a fixed underlying type are a C++11 extension}}18#elif defined(OBJC)19// diagnostic20#elif defined(C23)21// expected-warning@-8{{enumeration types with a fixed underlying type are incompatible with C standards before C23}}22#elif defined(C11)23// expected-warning@-10{{enumeration types with a fixed underlying type are a C23 extension}}24#elif defined(MS)25// expected-warning@-12{{enumeration types with a fixed underlying type are a Microsoft extension}}26#endif27 28// Don't warn about the forward declaration in any language mode.29enum Fwd : int;30enum Fwd : int { e2 };31#if !defined(OBJC) && !defined(C23)32// expected-warning@-3 {{enumeration types with a fixed underlying type}}33// expected-warning@-3 {{enumeration types with a fixed underlying type}}34#elif defined(C23)35// expected-warning@-6 {{enumeration types with a fixed underlying type are incompatible with C standards before C23}}36// expected-warning@-6 {{enumeration types with a fixed underlying type are incompatible with C standards before C23}}37#endif38 39// Always error on the incompatible redeclaration.40enum BadFwd : int;41#if !defined(OBJC) && !defined(C23)42// expected-warning@-2 {{enumeration types with a fixed underlying type}}43#elif defined(C23)44// expected-warning@-4 {{enumeration types with a fixed underlying type are incompatible with C standards before C23}}45#endif46// expected-note@-6 {{previous declaration is here}}47enum BadFwd : char { e3 };48#if !defined(OBJC) && !defined(C23)49// expected-warning@-2 {{enumeration types with a fixed underlying type}}50#elif defined(C23)51// expected-warning@-4 {{enumeration types with a fixed underlying type are incompatible with C standards before C23}}52#endif53// expected-error@-6 {{enumeration redeclared with different underlying type 'char' (was 'int')}}54