Path: utzoo!telly!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!arkesden.eng.sun.com!tiemann From: tiemann@arkesden.eng.sun.com (Michael Tiemann) Newsgroups: gnu.g++.bug Subject: [Varargs on sparc fail again] Message-ID: <8912041329.AA22864@arkesden.sun.com> Date: 4 Dec 89 13:29:27 GMT References: <8912041203.AA13533@lurch.Stanford.EDU> Sender: daemon@tut.cis.ohio-state.edu Reply-To: tiemann@sun.com Distribution: gnu Organization: GNUs Not Usenet Lines: 41 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