[Bug 721531]
Rsandifo-gcc
721531 at bugs.launchpad.net
Tue Jun 7 07:32:37 UTC 2011
(In reply to comment #3)
> Btw, we finally should introduce a target hook for this I think.
Thanks for the patch in comment #2. How strongly do you feel
about the hook though? In PR35705, it sounded like a lot of
targets actually need an opt-out for functions, either because
of ISA encoding (ARM, MIPS, SH) or because of function
descriptors (IA-64, PA, PPC).
I notice that ARM and mcore also have optimisation-dependent
FUNCTION_BOUNDARYs. Arguably (very arguably) that's a bug,
and they should be using align_functions instead. But if we
make a deliberate decision to honour DECL_ALIGN on functions,
then FUNCTION_BOUNDARY really will be an ABI property.
I'm just worried that the combination of that and the need
to identify exactly which targets should define the hook
might be more hassle than the optimisation is worth.
You said in that bug that masking function addresses isn't
likely to be a common operation, and TBH, I still agree.
Richard
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.5 in Ubuntu.
https://bugs.launchpad.net/bugs/721531
Title:
[armel] gcc computes wrong address for main() at build time
Status in The GNU Compiler Collection:
New
Status in Linaro GCC:
Triaged
Status in “gcc-4.5” package in Ubuntu:
Triaged
Status in “gcc-4.5” source package in Natty:
Won't Fix
Status in “gcc-4.5” source package in Oneiric:
Triaged
Bug description:
Binary package hint: gcc-4.5
During the debugging of mono, we found a confirmed tool chain
regression and isolated it down to a testcase:
Test code:
void main() {
void *p = main;
if ((int)p & 1) printf ("HIT!\n");
}
Output:
mcasadevall at risingsun:~/tmp$ gcc -g test.c
test.c: In function 'main':
test.c:3:18: warning: incompatible implicit declaration of built-in function 'printf'
mcasadevall at risingsun:~/tmp$ ./a.out
HIT!
mcasadevall at risingsun:~/tmp$ gcc -g -O2 test.c
test.c: In function 'main':
test.c:3:18: warning: incompatible implicit declaration of built-in function 'printf'
mcasadevall at risingsun:~/tmp$ ./a.out
mcasadevall at risingsun:~/tmp$
Doesn't occur with gcc-4.4.
Additional comments from #monodev:
16:26:58 < vargaz> NCommander: it seems to think function addresses on arm
have their lowest bit set to 0, which is not true for
thumb.
More information about the foundations-bugs
mailing list