aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-11-23 06:19:36 +0000
committerRichard Stallman <rms@gnu.org>1993-11-23 06:19:36 +0000
commit1be07046359570d2e482b49f1d2a184141410a2a (patch)
tree26df665a09044f4265de32d1c2d5e78fc5e1964c /gcc
parent0e5eedfeb07de9302f853038fb3a94f8086558ec (diff)
downloadgcc-1be07046359570d2e482b49f1d2a184141410a2a.zip
gcc-1be07046359570d2e482b49f1d2a184141410a2a.tar.gz
gcc-1be07046359570d2e482b49f1d2a184141410a2a.tar.bz2
(expand_function_end): New arg END_BINDINGS.
From-SVN: r6141
Diffstat (limited to 'gcc')
-rw-r--r--gcc/function.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 9c2cf5f..3e388f6 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4887,12 +4887,14 @@ expand_function_start (subr, parms_have_cleanups)
/* Generate RTL for the end of the current function.
FILENAME and LINE are the current position in the source file. */
-/* It is up to language-specific callers to do cleanups for parameters. */
+/* It is up to language-specific callers to do cleanups for parameters--
+ or else, supply 1 for END_BINDINGS and we will call expand_end_bindings. */
void
-expand_function_end (filename, line)
+expand_function_end (filename, line, end_bindings)
char *filename;
int line;
+ int end_bindings;
{
register int i;
tree link;
@@ -5022,6 +5024,10 @@ expand_function_end (filename, line)
if (return_label)
emit_label (return_label);
+ /* C++ uses this. */
+ if (end_bindings)
+ expand_end_bindings (0, 0, 0);
+
/* If we had calls to alloca, and this machine needs
an accurate stack pointer to exit the function,
insert some code to save and restore the stack pointer. */