This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
fshort-enums broken in egcs-1.1.1
- To: egcs-bugs at cygnus dot com
- Subject: fshort-enums broken in egcs-1.1.1
- From: cgw at alum dot mit dot edu (Charles G Waldman)
- Date: Mon, 25 Jan 99 18:07 EST
Please send me a copy of any responses to this posting as I am not
subscribed to this list.
I just discovered the following bug in trying to compile KnightCap
(a chess program) on Linux/x86 using egcs-1.1.1. I verified that
this bug does not exist when I use the gcc-2.7.2.3 compiler so I think
it's egcs-specific.
If I compile the following code with no compiler flags, it prints
a list of numbers from 0 to 63. But if I compile with the -fshort-enums
flag (as the KnightCap Makefile is set to do by default) the loop
fails to terminate.
-----------sample code follows-------------------
typedef enum {A1=0, A2, A3, A4, A5, A6, A7, A8,
B1, B2, B3, B4, B5, B6, B7, B8,
C1, C2, C3, C4, C5, C6, C7, C8,
D1, D2, D3, D4, D5, D6, D7, D8,
E1, E2, E3, E4, E5, E6, E7, E8,
F1, F2, F3, F4, F5, F6, F7, F8,
G1, G2, G3, G4, G5, G6, G7, G8,
H1, H2, H3, H4, H5, H6, H7, H8} SquareT;
typedef SquareT Square;
bug(){
Square p;
for (p=A1;p<=H8;p++){
printf("%d\n", (int)p);
}
}
main(int argc, char **argv){
bug();
}