diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2003-12-05 07:46:35 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2003-12-05 06:46:35 +0000 |
commit | 6e3077c6087cfcf64d814641adc019a2a85c763e (patch) | |
tree | ad0e21ca2e7c1cb2a9d00489abf7bf7d0bc9fb0e /gcc/rtl.h | |
parent | ed31a8173b85434c124d5627ae9265f6ea0c6c6a (diff) | |
download | gcc-6e3077c6087cfcf64d814641adc019a2a85c763e.zip gcc-6e3077c6087cfcf64d814641adc019a2a85c763e.tar.gz gcc-6e3077c6087cfcf64d814641adc019a2a85c763e.tar.bz2 |
re PR middle-end/11151 (__builtin_return(__builtin_apply(...)) gives wrong result)
PR middle-end/11151
* function.h (struct function): New field 'x_naked_return_label'.
* function.c (free_after_compilation): Set it to NULL.
(expand_function_end): Emit 'naked_return_label' if it exists.
* rtl.h (expand_naked_return): Declare.
* stmt.c (expand_naked_return): New function to generate a
jump to 'naked_return_label'.
* builtins.c (expand_builtin_return): Call expand_naked_return
instead of expand_null_return.
* config/sparc/sparc.md (untyped_return): Likewise.
From-SVN: r74312
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -2133,6 +2133,7 @@ extern void purge_hard_subreg_sets (rtx); /* In stmt.c */ extern void set_file_and_line_for_stmt (location_t); extern void expand_null_return (void); +extern void expand_naked_return (void); extern void emit_jump (rtx); extern int preserve_subexpressions_p (void); |