[Bug target/94530] [9/10 Regression] ICE: SIGSEGV in rhs_regno (rtl.h:1924) with -Os -mcpu=falkor -mpc-relative-literal-loads -mcmodel=large

zsojka at seznam dot cz gcc-bugzilla@gcc.gnu.org
Tue Apr 14 09:53:07 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94530

--- Comment #5 from Zdenek Sojka <zsojka at seznam dot cz> ---
(In reply to CVS Commits from comment #4)
> The master branch has been updated by Andrea Corallo <akrl@gcc.gnu.org>:
> 
> https://gcc.gnu.org/g:af19e4d0e23e5f61fc15e44a58bfa3b047854b1e
> 
> commit r10-7651-gaf19e4d0e23e5f61fc15e44a58bfa3b047854b1e
> Author: Andrea Corallo <andrea.corallo@arm.com>
> Date:   Wed Apr 8 13:38:28 2020 +0100
> 
>     PR target/94530
>     
>     gcc/ChangeLog
>     
>     2020-04-09  Andrea Corallo  <andrea.corallo@arm.com>
>     
>             PR target/94530
>             * config/aarch64/falkor-tag-collision-avoidance.c
>             (valid_src_p): Fix missing rtx type check.
>     
>     gcc/testsuite/ChangeLog
>     
>     2020-04-09  Andrea Corallo  <andrea.corallo@arm.com>
>     
>             * gcc.target/aarch64/pr94530.c: New test.

Thank you for checking this; I am still observing the issue with r10-7691:

$ aarch64-unknown-linux-gnu-gcc -Os -mcpu=falkor -mpc-relative-literal-loads
-mcmodel=large testcase.c -wrapper valgrind,-q
==24849== Use of uninitialised value of size 8
==24849==    at 0x14BACFD: valid_src_p (falkor-tag-collision-avoidance.c:541)
==24849==    by 0x14BACFD: get_load_info(rtx_insn*, loop*, rtx_def**,
rtx_def**, rtx_def**, bool*, bool*) (falkor-tag-collision-avoidance.c:644)
==24849==    by 0x14BC0E5: record_loads (falkor-tag-collision-avoidance.c:774)
==24849==    by 0x14BC0E5: execute_tag_collision_avoidance()
(falkor-tag-collision-avoidance.c:827)
==24849==    by 0x14BCD18: pass_tag_collision_avoidance::execute(function*)
(falkor-tag-collision-avoidance.c:874)
==24849==    by 0xFD438E: execute_one_pass(opt_pass*) (passes.c:2502)
==24849==    by 0xFD4B3F: execute_pass_list_1(opt_pass*) (passes.c:2590)
==24849==    by 0xFD4B51: execute_pass_list_1(opt_pass*) (passes.c:2591)
==24849==    by 0xFD4B51: execute_pass_list_1(opt_pass*) (passes.c:2591)
==24849==    by 0xFD4B78: execute_pass_list(function*, opt_pass*)
(passes.c:2601)
==24849==    by 0xC2EB6B: cgraph_node::expand() (cgraphunit.c:2299)
==24849==    by 0xC2FC0F: expand_all_functions (cgraphunit.c:2470)
==24849==    by 0xC2FC0F: symbol_table::compile() [clone .part.0]
(cgraphunit.c:2820)
==24849==    by 0xC3237C: compile (cgraphunit.c:2733)
==24849==    by 0xC3237C: symbol_table::finalize_compilation_unit()
(cgraphunit.c:3000)
==24849==    by 0x10D2F9A: compile_file() (toplev.c:483)
==24849== 
==24849== Invalid read of size 2
==24849==    at 0x14BACFD: valid_src_p (falkor-tag-collision-avoidance.c:541)
==24849==    by 0x14BACFD: get_load_info(rtx_insn*, loop*, rtx_def**,
rtx_def**, rtx_def**, bool*, bool*) (falkor-tag-collision-avoidance.c:644)
==24849==    by 0x14BC0E5: record_loads (falkor-tag-collision-avoidance.c:774)
==24849==    by 0x14BC0E5: execute_tag_collision_avoidance()
(falkor-tag-collision-avoidance.c:827)
==24849==    by 0x14BCD18: pass_tag_collision_avoidance::execute(function*)
(falkor-tag-collision-avoidance.c:874)
==24849==    by 0xFD438E: execute_one_pass(opt_pass*) (passes.c:2502)
==24849==    by 0xFD4B3F: execute_pass_list_1(opt_pass*) (passes.c:2590)
==24849==    by 0xFD4B51: execute_pass_list_1(opt_pass*) (passes.c:2591)
==24849==    by 0xFD4B51: execute_pass_list_1(opt_pass*) (passes.c:2591)
==24849==    by 0xFD4B78: execute_pass_list(function*, opt_pass*)
(passes.c:2601)
==24849==    by 0xC2EB6B: cgraph_node::expand() (cgraphunit.c:2299)
==24849==    by 0xC2FC0F: expand_all_functions (cgraphunit.c:2470)
==24849==    by 0xC2FC0F: symbol_table::compile() [clone .part.0]
(cgraphunit.c:2820)
==24849==    by 0xC3237C: compile (cgraphunit.c:2733)
==24849==    by 0xC3237C: symbol_table::finalize_compilation_unit()
(cgraphunit.c:3000)
==24849==    by 0x10D2F9A: compile_file() (toplev.c:483)
==24849==  Address 0x1 is not stack'd, malloc'd or (recently) free'd
==24849== 
during RTL pass: tag_collision_avoidance
testcase.c: In function 'foo':
testcase.c:6:1: internal compiler error: Segmentation fault
    6 | }
      | ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.


Note I am using gcc with RTL checking enabled; this might also explain why you
weren't seeing the crash on the 9-branch.


More information about the Gcc-bugs mailing list