https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61577
--- Comment #58 from EML <elowe at elowe dot com> ---
32 Bit:
Second Test Program (derived from a crashing conftest)
#include <ctype.h>
int
main ()
{
int j = 0;
j = islower(0);
printf("j is: %d\n", j);
return 0;
}
<snip>
[.LCFI2:]
mov r35 = r1
.body
.loc 1 6 7
;;
st4 [r34] = r0
.loc 1 8 18
addl r14 = @ltoffx(__SB_masks#), r1
;;
ld8.mov r14 = [r14], __SB_masks#
;;
ld4 r14 = [r14]
.loc 1 8 16
;;
cmp.eq p6, p7 = 0, r14
(p6) br.cond.dptk .L2
.loc 1 8 35 discriminator 1
addl r14 = @ltoffx(__SB_masks#), r1
;;
ld8.mov r14 = [r14], __SB_masks#
;;
ld4 r14 = [r14]
;;
ld4 r14 = [r14] <<<--- crashes here. Missing addp4 r14 = 0,r14
.loc 1 8 16 discriminator 1
;;
and r14 = 64, r14
br .L3
;;
<snip>
If you insert the addp4 r14 = 0,r14 before that command (like gcc 4.9.3 does),
the program compiles and runs correctly
I'll upload the .s for "IsLower.c" - it's definitely a 32 bit executable, so
the correct options are being passed around.