diff options
author | dim <dim@FreeBSD.org> | 2013-04-08 18:45:10 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2013-04-08 18:45:10 +0000 |
commit | c72c57c9e9b69944e3e009cd5e209634839581d3 (patch) | |
tree | 4fc2f184c499d106f29a386c452b49e5197bf63d /test/Sema/warn-duplicate-enum.c | |
parent | 5b20025c30d23d521e12c1f33ec8fa6b821952cd (diff) | |
download | FreeBSD-src-c72c57c9e9b69944e3e009cd5e209634839581d3.zip FreeBSD-src-c72c57c9e9b69944e3e009cd5e209634839581d3.tar.gz |
Vendor import of clang trunk r178860:
http://llvm.org/svn/llvm-project/cfe/trunk@178860
Diffstat (limited to 'test/Sema/warn-duplicate-enum.c')
-rw-r--r-- | test/Sema/warn-duplicate-enum.c | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/test/Sema/warn-duplicate-enum.c b/test/Sema/warn-duplicate-enum.c new file mode 100644 index 0000000..239f6f1 --- /dev/null +++ b/test/Sema/warn-duplicate-enum.c @@ -0,0 +1,92 @@ +// RUN: %clang_cc1 %s -fsyntax-only -verify -Wduplicate-enum +// RUN: %clang_cc1 %s -x c++ -fsyntax-only -verify -Wduplicate-enum +enum A { + A1 = 0, // expected-note {{element A1 also has value 0}} + A2 = -1, + A3, // expected-warning {{element A3 has been implicitly assigned 0 which another element has been assigned}} + A4}; + +enum B { + B1 = -1, // expected-note {{element B1 also has value -1}} + B2, // expected-warning {{element B2 has been implicitly assigned 0 which another element has been assigned}} + B3, + B4 = -2, + B5, // expected-warning {{element B5 has been implicitly assigned -1 which another element has been assigned}} + B6 // expected-note {{element B6 also has value 0}} +}; + +enum C { C1, C2 = -1, C3 }; // expected-warning{{element C1 has been implicitly assigned 0 which another element has been assigned}} \ + // expected-note {{element C3 also has value 0}} + +enum D { + D1, + D2, + D3, // expected-warning{{element D3 has been implicitly assigned 2 which another element has been assigned}} + D4 = D2, // no warning + D5 = 2 // expected-note {{element D5 also has value 2}} +}; + +enum E { + E1, + E2 = E1, + E3 = E2 +}; + +enum F { + F1, + F2, + FCount, + FMax = FCount - 1 +}; + +enum G { + G1, + G2, + GMax = G2, + GCount = GMax + 1 +}; + +enum { + H1 = 0, + H2 = -1, + H3, + H4}; + +enum { + I1 = -1, + I2, + I3, + I4 = -2, + I5, + I6 +}; + +enum { J1, J2 = -1, J3 }; + +enum { + K1, + K2, + K3, + K4 = K2, + K5 = 2 +}; + +enum { + L1, + L2 = L1, + L3 = L2 +}; + +enum { + M1, + M2, + MCount, + MMax = MCount - 1 +}; + +enum { + N1, + N2, + NMax = N2, + NCount = NMax + 1 +}; |