PR inline-asm/8803

Jan Hubicka jh@suse.cz
Thu Apr 10 21:21:00 GMT 2003


> On Tue, Apr 08, 2003 at 08:15:37PM +0200, Jan Hubicka wrote:
> > I am getting quite nervous about keeping the
> > inconsistent asm statement in the chain.  What about zapping all that
> > does not validate just after instantiate_virtual_regs?
> 
> I thought we already did that...  Certainly I think that's
> for the best.  Does that affect whether the addressof changes
> are needed?
> 
The attached patch avoids the crash as well.  I am unsure on whether it
won't match on ASM statements that previously got magically trought the
compiler but I can not think about sane use of such trick.

OK for mainline/3.3?

Thu Apr 10 23:17: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.
Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.415
diff -c -3 -p -r1.415 function.c
*** function.c	9 Apr 2003 06:32:21 -0000	1.415
--- function.c	10 Apr 2003 21:16:55 -0000
*************** instantiate_virtual_regs (fndecl, insns)
*** 3592,3597 ****
--- 3592,3603 ----
  	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
+ 	    && insn_invalid_p (insn))
+           instantiate_virtual_regs_lossage (insn);
        }
  
    /* Instantiate the stack slots for the parm registers, for later use in



More information about the Gcc-patches mailing list