Richard Trieu | 493df1a | 2013-08-08 01:50:23 +0000 | [diff] [blame] | 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++; } |