------- Comment #3 from paolo dot carlini at oracle dot com 2009-09-21 12:41 ------- As far as I can see, you are triggering undefined behavior. Per 5.2.9/7: "A value of integral or enumeration type can be explicitly converted to an enumeration type. The value is unchanged if the original value is within the range of the enumeration values (7.2). Otherwise, the resulting enumeration value is unspecified."
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41425