109 lines · c
1// RUN: %clang_cc1 %s -fsyntax-only -verify -Wduplicate-enum2// RUN: %clang_cc1 -triple x86_64-apple-darwin %s -x c++ -DCPP -fsyntax-only -verify -Wduplicate-enum3enum A {4 A1 = 0, // expected-note {{element 'A1' also has value 0}}5 A2 = -1,6 A3, // expected-warning {{element 'A3' has been implicitly assigned 0 which another element has been assigned}}7 A4};8 9enum B {10 B1 = -1, // expected-note {{element 'B1' also has value -1}}11 B2, // expected-warning {{element 'B2' has been implicitly assigned 0 which another element has been assigned}}12 B3,13 B4 = -2,14 B5, // expected-warning {{element 'B5' has been implicitly assigned -1 which another element has been assigned}}15 B6 // expected-note {{element 'B6' also has value 0}}16};17 18enum C { C1, C2 = -1, C3 }; // expected-warning{{element 'C1' has been implicitly assigned 0 which another element has been assigned}} \19 // expected-note {{element 'C3' also has value 0}}20 21enum D {22 D1,23 D2,24 D3, // expected-warning{{element 'D3' has been implicitly assigned 2 which another element has been assigned}}25 D4 = D2, // no warning26 D5 = 2 // expected-note {{element 'D5' also has value 2}}27};28 29enum E {30 E1,31 E2 = E1,32 E3 = E233};34 35enum F {36 F1,37 F2,38 FCount,39 FMax = FCount - 140};41 42enum G {43 G1,44 G2,45 GMax = G2,46 GCount = GMax + 147};48 49enum {50 H1 = 0,51 H2 = -1,52 H3,53 H4};54 55enum {56 I1 = -1,57 I2,58 I3,59 I4 = -2,60 I5,61 I662};63 64enum { J1, J2 = -1, J3 };65 66enum { 67 K1, 68 K2, 69 K3,70 K4 = K2,71 K5 = 272};73 74enum {75 L1,76 L2 = L1,77 L3 = L278};79 80enum {81 M1,82 M2,83 MCount,84 MMax = MCount - 185};86 87enum {88 N1,89 N2,90 NMax = N2,91 NCount = NMax + 192};93 94// PR1569395enum enum1 {96 VALUE // expected-note{{previous definition is here}}97};98 99enum enum2 {100 VALUE // expected-error{{redefinition of enumerator 'VALUE'}}101};102 103#ifdef CPP104enum BigEnumerators : long {105 e1,106 e2 = __LONG_MAX__,107};108#endif109