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