Bug 95634 - [11 Regression] ICE in output_operand: invalid address mode
Summary: [11 Regression] ICE in output_operand: invalid address mode
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: sanitizer (show other bugs)
Version: 11.0
: P3 normal
Target Milestone: ---
Assignee: Martin Liška
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2020-06-11 07:15 UTC by Martin Liška
Modified: 2020-06-12 08:30 UTC (History)
5 users (show)

See Also:
Host: x86_64-linux-gnu
Target: aarch64-linux-gnu
Build:
Known to work:
Known to fail:
Last reconfirmed: 2020-06-11 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Liška 2020-06-11 07:15:45 UTC
The following fails:

$ /xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/pr38048-1.c -mabi=ilp32 -fsanitize=address -c -S -fdump-rtl-all
during RTL pass: final
dump file: pr38048-1.c.320r.final
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/pr38048-1.c: In function ‘foo’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.c-torture/execute/pr38048-1.c:14:1: internal compiler error: output_operand: invalid address mode
   14 | }
      | ^
0xc65336 output_operand_lossage(char const*, ...)
	/home/marxin/Programming/gcc/gcc/final.c:3609
0x15a4dfd aarch64_print_address_internal
	/home/marxin/Programming/gcc/gcc/config/aarch64/aarch64.c:10464
0x15a5546 aarch64_print_operand_address
	/home/marxin/Programming/gcc/gcc/config/aarch64/aarch64.c:10568
0xc65553 output_address(machine_mode, rtx_def*)
	/home/marxin/Programming/gcc/gcc/final.c:4067
0x15a4601 aarch64_print_operand
	/home/marxin/Programming/gcc/gcc/config/aarch64/aarch64.c:10250
0xc654b1 output_operand(rtx_def*, int)
	/home/marxin/Programming/gcc/gcc/final.c:4051
0xc65efc output_asm_insn(char const*, rtx_def**)
	/home/marxin/Programming/gcc/gcc/final.c:3963
0xc69dc3 output_asm_insn(char const*, rtx_def**)
	/home/marxin/Programming/gcc/gcc/final.c:3840
0xc69dc3 final_scan_insn_1
	/home/marxin/Programming/gcc/gcc/final.c:3106
0xc6a0bb final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
	/home/marxin/Programming/gcc/gcc/final.c:3152
0xc6a1c6 final_1
	/home/marxin/Programming/gcc/gcc/final.c:2020
0xc6adb4 rest_of_handle_final
	/home/marxin/Programming/gcc/gcc/final.c:4658
0xc6adb4 execute
	/home/marxin/Programming/gcc/gcc/final.c:4736
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
Comment 1 Martin Liška 2020-06-11 07:16:22 UTC
Started with my g:8b6731e674c76cb48a417f2eef74ced92a17f469.
Comment 2 Andrew Pinski 2020-06-11 07:40:12 UTC
Most likely a ptr_mode vs Pmode issue.
Comment 3 Martin Liška 2020-06-11 07:42:06 UTC
(In reply to Andrew Pinski from comment #2)
> Most likely a ptr_mode vs Pmode issue.

Yep, I've got a working patch for it..
Comment 4 GCC Commits 2020-06-11 09:04:12 UTC
The master branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:8cff672cb9a132d3d3158c2edfc9a64b55292b80

commit r11-1197-g8cff672cb9a132d3d3158c2edfc9a64b55292b80
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jun 11 09:34:41 2020 +0200

    asan: fix RTX emission for ilp32
    
    gcc/ChangeLog:
    
            PR sanitizer/95634
            * asan.c (asan_emit_stack_protection): Fix emission for ilp32
            by using Pmode instead of ptr_mode.
    
    Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
Comment 5 Martin Liška 2020-06-11 09:04:34 UTC
Fixed.
Comment 6 GCC Commits 2020-06-12 08:03:51 UTC
The releases/gcc-10 branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:e1d68582022cfa2b1dc76646724b397ba2739439

commit r10-8284-ge1d68582022cfa2b1dc76646724b397ba2739439
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jun 11 09:34:41 2020 +0200

    asan: fix RTX emission for ilp32
    
    gcc/ChangeLog:
    
            PR sanitizer/95634
            * asan.c (asan_emit_stack_protection): Fix emission for ilp32
            by using Pmode instead of ptr_mode.
    
    Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
    (cherry picked from commit 8cff672cb9a132d3d3158c2edfc9a64b55292b80)
Comment 7 GCC Commits 2020-06-12 08:17:49 UTC
The releases/gcc-9 branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:187c96ea5310cef1977d8a44b0b9a6b561b6c8c7

commit r9-8672-g187c96ea5310cef1977d8a44b0b9a6b561b6c8c7
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jun 11 09:34:41 2020 +0200

    asan: fix RTX emission for ilp32
    
    gcc/ChangeLog:
    
            PR sanitizer/95634
            * asan.c (asan_emit_stack_protection): Fix emission for ilp32
            by using Pmode instead of ptr_mode.
    
    Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
    (cherry picked from commit 8cff672cb9a132d3d3158c2edfc9a64b55292b80)
Comment 8 GCC Commits 2020-06-12 08:30:20 UTC
The releases/gcc-8 branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:5222017313f5abf39e2374dc11bcac9b444f1b4c

commit r8-10308-g5222017313f5abf39e2374dc11bcac9b444f1b4c
Author: Martin Liska <mliska@suse.cz>
Date:   Thu Jun 11 09:34:41 2020 +0200

    asan: fix RTX emission for ilp32
    
    gcc/ChangeLog:
    
            PR sanitizer/95634
            * asan.c (asan_emit_stack_protection): Fix emission for ilp32
            by using Pmode instead of ptr_mode.
    
    Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
    (cherry picked from commit 8cff672cb9a132d3d3158c2edfc9a64b55292b80)