|  | // RUN: %clang_cc1 -fsyntax-only %s -verify | 
|  |  | 
|  | enum A { A1, A2, A3 }; | 
|  | void test() { | 
|  | A a; | 
|  | a++;  // expected-error{{cannot increment expression of enum type 'A'}} | 
|  | a--;  // expected-error{{cannot decrement expression of enum type 'A'}} | 
|  | ++a;  // expected-error{{cannot increment expression of enum type 'A'}} | 
|  | --a;  // expected-error{{cannot decrement expression of enum type 'A'}} | 
|  | } | 
|  |  | 
|  | enum B {B1, B2}; | 
|  | inline B &operator++ (B &b) { b = B((int)b+1); return b; } | 
|  | inline B operator++ (B &b, int) { B ret = b; ++b; return b; } | 
|  |  | 
|  | void foo(enum B b) { ++b; b++; } |