diff options
author | Erik Pilkington <erik.pilkington@gmail.com> | 2018-09-28 20:24:58 +0000 |
---|---|---|
committer | Erik Pilkington <erik.pilkington@gmail.com> | 2018-09-28 20:24:58 +0000 |
commit | 6f11db137034b38dbe2aabfa823ac0f2a7e3f9b9 (patch) | |
tree | 140a09f64fa370717a9b98bcdebb27d0fc62a8a5 /clang/test/Sema/fixed-enum.c | |
parent | bb993be56bb38e46c029b682f67fd1b7dc4b9111 (diff) | |
download | bcm5719-llvm-6f11db137034b38dbe2aabfa823ac0f2a7e3f9b9.tar.gz bcm5719-llvm-6f11db137034b38dbe2aabfa823ac0f2a7e3f9b9.zip |
Support enums with a fixed underlying type in all language modes.
Previously we supported these in C++, ObjC, and C with -fms-extensions.
rdar://43831380
Differential revision: https://reviews.llvm.org/D52339
llvm-svn: 343360
Diffstat (limited to 'clang/test/Sema/fixed-enum.c')
-rw-r--r-- | clang/test/Sema/fixed-enum.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/Sema/fixed-enum.c b/clang/test/Sema/fixed-enum.c new file mode 100644 index 00000000000..60a4bc474f7 --- /dev/null +++ b/clang/test/Sema/fixed-enum.c @@ -0,0 +1,18 @@ +// RUN: %clang_cc1 -Weverything -xc++ -std=c++11 -DCXX11 -verify %s +// RUN: %clang_cc1 -Weverything -xc++ -std=c++03 -DCXX03 -verify %s +// RUN: %clang_cc1 -Weverything -xobjective-c -DOBJC -verify %s +// RUN: %clang_cc1 -Weverything -std=c11 -xc -DC11 -verify %s +// RUN: %clang_cc1 -Weverything -std=c11 -xc -fms-extensions -DMS -verify %s + +enum X : int {e}; +#if defined(CXX11) +// expected-warning@-2{{enumeration types with a fixed underlying type are incompatible with C++98}} +#elif defined(CXX03) +// expected-warning@-4{{enumeration types with a fixed underlying type are a C++11 extension}} +#elif defined(OBJC) +// expected-no-diagnostics +#elif defined(C11) +// expected-warning@-8{{enumeration types with a fixed underlying type are a Clang extension}} +#elif defined(MS) +// expected-warning@-10{{enumeration types with a fixed underlying type are a Microsoft extension}} +#endif |