aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@casey.cygnus.com>2000-01-31 18:52:34 +0000
committerJason Merrill <jason@gcc.gnu.org>2000-01-31 13:52:34 -0500
commitd4cf5733ee1a1e5efded2df9800e6edd64a944bd (patch)
treeb65c25418a2a8881d52340108bd3275c2201eafb /gcc
parentd4bf484274df326c2f01784f3b6beff6796bb1e3 (diff)
downloadgcc-d4cf5733ee1a1e5efded2df9800e6edd64a944bd.zip
gcc-d4cf5733ee1a1e5efded2df9800e6edd64a944bd.tar.gz
gcc-d4cf5733ee1a1e5efded2df9800e6edd64a944bd.tar.bz2
jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the new label.
* jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the new label. From-SVN: r31721
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/jump.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8a117e9..3838f3f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-01-31 Jason Merrill <jason@casey.cygnus.com>
+
+ * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
+ new label.
+
2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
diff --git a/gcc/jump.c b/gcc/jump.c
index 0119d52..1f740fd 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -4639,6 +4639,13 @@ redirect_jump (jump, nlabel)
if (nlabel)
++LABEL_NUSES (nlabel);
+ /* If we're eliding the jump over exception cleanups at the end of a
+ function, move the function end note so that -Wreturn-type works. */
+ if (olabel && NEXT_INSN (olabel)
+ && GET_CODE (NEXT_INSN (olabel)) == NOTE
+ && NOTE_LINE_NUMBER (NEXT_INSN (olabel)) == NOTE_INSN_FUNCTION_END)
+ emit_note_after (NOTE_INSN_FUNCTION_END, nlabel);
+
if (olabel && --LABEL_NUSES (olabel) == 0)
delete_insn (olabel);