aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-04-10 23:54:33 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2003-04-10 21:54:33 +0000
commitf90e4deafa94c9ffff4e446ec80fd9c08a15b65d (patch)
tree6e1349bcedc76f09d99e7301723c8a2d323cbecd /gcc/function.c
parent08744705c05e5eac1407a340ea03d88f00d2cfbe (diff)
downloadgcc-f90e4deafa94c9ffff4e446ec80fd9c08a15b65d.zip
gcc-f90e4deafa94c9ffff4e446ec80fd9c08a15b65d.tar.gz
gcc-f90e4deafa94c9ffff4e446ec80fd9c08a15b65d.tar.bz2
re PR inline-asm/8803 (Internal compiler error in instantiate_virtual_regs_1, at function.c:3974)
PR inline-asm/8803 * function.c (instantate_virtual_regs): Verify that all ASM statements match after the virutal regs instantiation. From-SVN: r65438
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c
index b87da2a..306e752 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -3592,6 +3592,12 @@ instantiate_virtual_regs (fndecl, insns)
if (GET_CODE (insn) == CALL_INSN)
instantiate_virtual_regs_1 (&CALL_INSN_FUNCTION_USAGE (insn),
NULL_RTX, 0);
+
+ /* Past this point all ASM statements should match. Verify that
+ to avoid failures later in the compilation process. */
+ if (asm_noperands (PATTERN (insn)) >= 0
+ && ! check_asm_operands (PATTERN (insn)))
+ instantiate_virtual_regs_lossage (insn);
}
/* Instantiate the stack slots for the parm registers, for later use in