aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2020-12-13 17:08:08 +0100
committerJakub Jelinek <jakub@redhat.com>2020-12-13 17:08:08 +0100
commitd88e2cb54914cf8aa0ae68ca75dc45237acfcef0 (patch)
tree4bf7aac7518e05f8e01249158089a9b4b5b30a52 /gcc/reload.c
parent3b8a82f97dd48e153ce93b317c44254839e11461 (diff)
downloadgcc-d88e2cb54914cf8aa0ae68ca75dc45237acfcef0.zip
gcc-d88e2cb54914cf8aa0ae68ca75dc45237acfcef0.tar.gz
gcc-d88e2cb54914cf8aa0ae68ca75dc45237acfcef0.tar.bz2
varasm: Reject soft frame or arg pointer registers for register vars [PR92469]
The following patch rejects frame, argp and retarg registers (unless they are equal to hard frame pointer registers or if they aren't eliminable) from local or global register vars. These are just internal implementation details eliminated later into hard frame pointer or stack pointer and using them as register variable leads to numerous ICEs. 2020-12-13 Jakub Jelinek <jakub@redhat.com> PR target/92469 * varasm.c (eliminable_regno_p): New function. (make_decl_rtl): Reject asm vars for frame and argp if they are different from hard frame pointer. * gcc.target/i386/pr92469.c: New test. * gcc.target/i386/pr79804.c: Adjust expected diagnostics. * gcc.target/i386/pr88178.c: Expect an error.
Diffstat (limited to 'gcc/reload.c')
0 files changed, 0 insertions, 0 deletions