http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53091
--- Comment #11 from bugs at m8y dot org 2012-04-23 21:01:03 UTC --- Yeah, I get the difference now. Ok. Fair. So, I guess clang is just taking the values of the const ints at the time the assignment occurs (0x01 and 0x02) and assigning 0x03. If RIGHT or UP were changed, RIGHTUP would not change. Ok, what gcc is doing *does* make sense I 'spose :)