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

--- Comment #6 from ktkachov at gcc dot gnu.org ---
Author: ktkachov
Date: Tue Dec 19 16:58:22 2017
New Revision: 255830

URL: https://gcc.gnu.org/viewcvs?rev=255830&root=gcc&view=rev
Log:
[arm] PR target/82975: Guard against reg_renumber being NULL in arm.h

In this bug we ICE when checking REGNO_OK_FOR_INDEX_P on arm during pre-IRA
scheduling.
This is because REGNO_OK_FOR_INDEX_P ends up checking the reg_renumber array.
Before IRA reg_renumber is NULL and thus we segfault.

The fix is to guard the use of reg_renumber in the logic in TEST_REGNO in
arm.h.
On aarch64, for example, we also guard against the reg_renumber == NULL case.
This fixes the ICE. I also remove the part of the comment that muses on when
reg_renumber
is available as with this patch it should now be safe to use at any point.

Bootstrapped and tested on arm-none-linux-gnueabihf.

        PR target/82975
        * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
        accessing it.  Adjust comment.

        * gcc.dg/pr82975.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/pr82975.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm.h
    trunk/gcc/testsuite/ChangeLog

Reply via email to