This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/80303] ICE in output_operand: cannot decompose address w/ -fsanitize=undefined
- From: "marxin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 11 Apr 2017 09:29:31 +0000
- Subject: [Bug target/80303] ICE in output_operand: cannot decompose address w/ -fsanitize=undefined
- Auto-submitted: auto-generated
- References: <bug-80303-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80303
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-04-11
CC| |krebbel at gcc dot gnu.org,
| |vogt at linux dot vnet.ibm.com
Ever confirmed|0 |1
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
There's a reduced test-case and also reduced flags. Looks it's somehow related
to taking address of a label and the UBSAN is probably not directly involved in
that.
$ cat ice2.f
double precision function dnrm2 ( n, dx, incx)
double precision dx(1), cutlo, cuthi, hitest, sum, xmax,zero,one
10 assign 30 to next
20 go to next,(30, 50, 70, 110)
30 if( dabs(dx(i)) .gt. cutlo) go to 85
assign 50 to next
50 if( dx(i) .eq. zero) go to 200
70 if( dabs(dx(i)) .gt. cutlo ) go to 75
110 if( dabs(dx(i)) .le. xmax ) go to 115
115 sum = sum + (dx(i)/xmax)**2
75 sum = (sum * xmax) * xmax
85 hitest = cuthi/float( n )
200 continue
ix = ix + 1
if( ix .le. n ) go to 20
end
$ ./xgcc -B. ice2.f -Os -march=zEC12
-fsanitize=signed-integer-overflow,alignment
...
internal compiler error: output_operand: cannot decompose address
0xb7f717 output_operand_lossage(char const*, ...)
../../gcc/final.c:3457
0x13a6665 print_operand_address(_IO_FILE*, rtx_def*)
../../gcc/config/s390/s390.c:7325
0xf8bbb2 default_print_operand_address(_IO_FILE*, machine_mode, rtx_def*)
../../gcc/targhooks.c:357
0xb8044d output_address(machine_mode, rtx_def*)
../../gcc/final.c:3907
0xb7fe53 output_asm_insn(char const*, rtx_def**)
../../gcc/final.c:3768
0xb7ed76 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
../../gcc/final.c:3058
0xb7cf20 final(rtx_insn*, _IO_FILE*, int)
../../gcc/final.c:2051
0xb815f4 rest_of_handle_final
../../gcc/final.c:4489
0xb818c2 execute
../../gcc/final.c:4562