[gnu.g++.bug] Varargs on sparc fail again

tiemann@arkesden.eng.sun.com (Michael Tiemann) (12/04/89)

Here's a fix:

    arkesden% diff -c2 expr.c~ expr.c
    *** expr.c~	Mon Nov 27 17:37:43 1989
    --- expr.c	Mon Dec  4 05:26:56 1989
    ***************
    *** 3504,3508 ****
	       save them now.  */
	    emit_insns (saving_insns = save_from_saveregs);
    ! 	last_saving_insn = get_last_insn ();

	    /* Now really call the function.  `expand_call' does not call
    --- 3504,3512 ----
	       save them now.  */
	    emit_insns (saving_insns = save_from_saveregs);
    ! 	if (saving_insns)
    ! 	  {
    ! 	    emit_note (0, -1);
    ! 	    last_saving_insn = get_last_insn ();
    ! 	  }

	    /* Now really call the function.  `expand_call' does not call
    ***************
    *** 3510,3513 ****
    --- 3514,3518 ----
	       here.  */
	    temp = expand_call (exp, target, ignore);
    + 
	    if (saving_insns)
	      {
    ***************
    *** 3517,3520 ****
    --- 3522,3526 ----
		    if (GET_CODE (saving_insns) == INSN)
		      note_stores (PATTERN (saving_insns), use_variable);
    + 		saving_insns = NEXT_INSN (saving_insns);
		  } while (saving_insns != last_saving_insn);
	      }
    arkesden% 

Michael