/* { dg-do run } */ | |
/* { dg-options "-fno-strict-enums" } */ | |
extern "C" void abort (void); | |
enum zero_one | |
{ zero = 0, one = 1 }; | |
int * | |
allocate_bool (zero_one e) | |
{ | |
int *v = 0; | |
switch (e) | |
{ | |
case zero: | |
v = new int (0); | |
case one: | |
v = new int (1); | |
} | |
return v; | |
} | |
int | |
main () | |
{ | |
if (allocate_bool (static_cast < zero_one > (999))) | |
{ | |
/* Error: should not have matched any case label. */ | |
abort (); | |
} | |
else | |
{ | |
return 0; | |
} | |
} |