1// { dg-do assemble } 2// { dg-options "-Wsign-promo" } 3// 981203 bkoz 4// g++/15756 test1 5 6enum e_value { first = 0, next = 30 }; 7 8struct sanjuan { 9 sanjuan(int value); 10 sanjuan(unsigned value); 11 friend sanjuan operator&(const sanjuan& x, const sanjuan& y); 12 friend int operator!=(const sanjuan& x, const sanjuan& y); 13}; 14 15extern void mod_enum(e_value*); 16extern int a; 17 18void foo(void) { 19 e_value mod = first; 20 mod_enum(&mod); 21 if (mod != next) 22 ++a; 23} 24 25 26 27 28 29 30 31 32 33 34 35 36 37