+2001-04-26 Geoffrey Keating <geoffk@redhat.com>
+
+ * function.c (expand_function_end): Always clobber the
+ return registers, even if there is no return label.
+
Thu Apr 26 20:28:21 CEST 2001 Jan Hubicka <jh@suse.cz>
* (ix86_expand_fp_movcc): Re-enable SSE conditional move generation.
* config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for
-m386 and -m486.
+>>>>>>> 1.9867
2001-04-26 Alexandre Oliva <aoliva@redhat.com>
* configure.in (configargs.h): Define thread_model.
(get_exception_filter): New fn.
(finish_eh_generation): Use it.
+>>>>>>> 1.9859
2001-04-24 Nathan Sidwell <nathan@codesourcery.com>
* c-semantics.c (add_scope_stmt): Don't call
SDB depends on this. */
emit_line_note_force (filename, line);
+ /* Before the return label (if any), clobber the return
+ registers so that they are not propogated live to the rest of
+ the function. This can only happen with functions that drop
+ through; if there had been a return statement, there would
+ have either been a return rtx, or a jump to the return label. */
+ {
+ rtx before, after;
+
+ before = get_last_insn ();
+ clobber_return_register ();
+ after = get_last_insn ();
+
+ if (before != after)
+ cfun->x_clobber_return_insn = after;
+ }
+
/* Output the label for the actual return from the function,
if one is expected. This happens either because a function epilogue
is used instead of a return instruction, or because a return was done
with a goto in order to run local cleanups, or because of pcc-style
structure returning. */
-
if (return_label)
- {
- rtx before, after;
-
- /* Before the return label, clobber the return registers so that
- they are not propogated live to the rest of the function. This
- can only happen with functions that drop through; if there had
- been a return statement, there would have either been a return
- rtx, or a jump to the return label. */
-
- before = get_last_insn ();
- clobber_return_register ();
- after = get_last_insn ();
-
- if (before != after)
- cfun->x_clobber_return_insn = after;
-
- emit_label (return_label);
- }
+ emit_label (return_label);
/* C++ uses this. */
if (end_bindings)