Hi Ken. I'm not surprised by the results above. At all optimisation levels, GCC knows the alignment of a variable and therefore knows the value of the lower bits. At -O0 'foo' works as this information isn't propagated to the next line. 'thumb' fails as the value and alignment are available right there in the expression.
-O2 is as expected. 'foo' is different as the value propagates to the fp & 0x1L expression. Note that the work-around of pushing the value through the getfp() function works correctly. GCC is still wrong though... -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/721531 Title: [armel] gcc computes wrong address for main() at build time -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
