re PR inline-asm/8803 (Internal compiler error in instantiate_virtual_regs_1, at...
authorJan Hubicka <jh@suse.cz>
Thu, 10 Apr 2003 21:54:33 +0000 (23:54 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 10 Apr 2003 21:54:33 +0000 (21:54 +0000)
PR inline-asm/8803
* function.c (instantate_virtual_regs):  Verify that all ASM statements
match after the virutal regs instantiation.

From-SVN: r65438

gcc/ChangeLog
gcc/function.c

index d56304733d13786de130ac1229a3f9c8c8f2aa69..263bdc9bf49909d8a9fc40155ba53ac7151295f6 100644 (file)
@@ -1,3 +1,9 @@
+Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
+
+       PR inline-asm/8803
+       * function.c (instantate_virtual_regs):  Verify that all ASM statements
+       match after the virutal regs instantiation.
+
 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
 
        * ia64-protos.h (addp4_optimize_ok): New.
index b87da2ad25ffbf673a81c12b01169ea1eee18517..306e75236547f9796dea4a02a8e134a22f882a1b 100644 (file)
@@ -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