1 | // RUN: %clang_cc1 -fsyntax-only %s -verify |
2 | |
3 | enum A { A1, A2, A3 }; |
4 | void test() { |
5 | A a; |
6 | a++; // expected-error{{cannot increment expression of enum type 'A'}} |
7 | a--; // expected-error{{cannot decrement expression of enum type 'A'}} |
8 | ++a; // expected-error{{cannot increment expression of enum type 'A'}} |
9 | --a; // expected-error{{cannot decrement expression of enum type 'A'}} |
10 | } |
11 | |
12 | enum B {B1, B2}; |
13 | inline B &operator++ (B &b) { b = B((int)b+1); return b; } |
14 | inline B operator++ (B &b, int) { B ret = b; ++b; return b; } |
15 | |
16 | void foo(enum B b) { ++b; b++; } |
17 | |