| /* Copyright (C) 2000 Free Software Foundation */ | |
| /* by Alexandre Oliva <aoliva@redhat.com> */ | |
| enum foo { FOO, BAR }; | |
| /* Even though the underlying type of an enum is unspecified, the type | |
| of enumeration constants is explicitly defined as int (6.4.4.3/2 in | |
| the C99 Standard). Therefore, `i' must not be promoted to | |
| `unsigned' in the comparison below; we must exit the loop when it | |
| becomes negative. */ | |
| int | |
| main () | |
| { | |
| int i; | |
| for (i = BAR; i >= FOO; --i) | |
| if (i == -1) | |
| abort (); | |
| exit (0); | |
| } | |