------- Comment #3 from eblot dot ml at gmail dot com 2010-05-30 17:36 ------- > I can confirm this wrong-code when gcc 4.4/4.5 targets arm-unknown-eabi. > However, a 4.4/4.5 running natively on arm-unknown-linux-gnueabi does not exhibit this behaviour.
IIRC, Linux ABI does not follow the ARM AAPCS that uses variable-width enumeration. On Linux, enumerated values are stored as a native integer value, whatever the enumerated values. With AAPCS/ATPCS, if the enumerated values can be stored as a byte, a byte is used: --with-abi=aapcs I don't know if the issue is related to this ABI discrepancy. > Also, it's not a jump table but a lookup table. Sorry, my mistake. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44328