[Bug c/48783] ARM: kernel compiled at -O2 has a unused reference to __aeabi_uldivmod
ams at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Apr 27 11:09:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48783
--- Comment #4 from Andrew Stubbs <ams at gcc dot gnu.org> 2011-04-27 11:08:10 UTC ---
Somewhat reduced testcase:
static void
f (unsigned int a)
{
unsigned long long __res;
if (~0ULL % (a / (a & -a)) == 0)
{
asm ("": "+&r" (__res));
}
}
int
g (unsigned int a)
{
f (a);
}
This gives:
.global __aeabi_uidiv
.global __aeabi_uldivmod
.text
.align 2
.global g
.thumb
.thumb_func
.type g, %function
g:
.fnstart
.LFB1:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {lr}
.save {lr}
ldr pc, [sp], #4
.fnend
So, both __aeabi_uidiv and __aeabi_uldivmod are declared global, but neither is
actually used as the code is optimized away.
More information about the Gcc-bugs
mailing list