xref: /llvm-project/clang/test/Parser/objcxx-enum.mm (revision 8fc12b86985a088b2abd62a0684742c8e771d6ae)
12d3f5a62SRichard Smith// RUN: %clang_cc1 -verify -std=c++98 %s
2*8fc12b86SRichard Smith// RUN: %clang_cc1 -verify=cxx11 -std=c++11 %s
3*8fc12b86SRichard Smith
4*8fc12b86SRichard Smith#if __cplusplus < 201103L
52d3f5a62SRichard Smith// expected-no-diagnostics
6*8fc12b86SRichard Smith#endif
72d3f5a62SRichard Smith
82d3f5a62SRichard Smith// Objective-C allows C++11 enumerations in C++98 mode. We disambiguate in
92d3f5a62SRichard Smith// order to make this a backwards-compatible extension.
102d3f5a62SRichard Smithstruct A {
112d3f5a62SRichard Smith  enum E : int{a}; // OK, enum definition
12*8fc12b86SRichard Smith  enum E : int(a); // OK, bit-field declaration cxx11-error{{anonymous bit-field}}
132d3f5a62SRichard Smith};
142d3f5a62SRichard Smith_Static_assert(A::a == 0, "");
15