From 6bf7163510fdc0fa77bd4bbcf837ab66e05bb28a Mon Sep 17 00:00:00 2001 From: Craig Burley Date: Mon, 13 Jul 1998 08:11:43 -0400 Subject: [PATCH] com.c (ffecom_push_tempvar): Replace kludge that munged back-end globals directly with proper calls to... Mon Jul 13 11:54:03 1998 Craig Burley * com.c (ffecom_push_tempvar): Replace kludge that munged back-end globals directly with proper calls to push_topmost_sequence and pop_topmost_sequence. From-SVN: r21105 --- gcc/f/ChangeLog | 6 ++++++ gcc/f/com.c | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index c53f10df8e5..0581add690e 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,9 @@ +Mon Jul 13 11:54:03 1998 Craig Burley + + * com.c (ffecom_push_tempvar): Replace kludge that + munged back-end globals directly with proper calls + to push_topmost_sequence and pop_topmost_sequence. + 1998-07-12 Dave Love * version.c: Bump version. diff --git a/gcc/f/com.c b/gcc/f/com.c index 17993a9b7c5..64816424673 100644 --- a/gcc/f/com.c +++ b/gcc/f/com.c @@ -13394,18 +13394,19 @@ ffecom_push_tempvar (tree type, ffetargetCharacterSize size, int elements, ffecom_get_invented_identifier ("__g77_expr_%d", NULL, mynumber++), type); - { /* ~~~~ kludge alert here!!! else temp gets reused outside - a compound-statement sequence.... */ - extern tree sequence_rtl_expr; - tree back_end_bug = sequence_rtl_expr; - sequence_rtl_expr = NULL_TREE; + /* This temp must be put in the same scope as the containing BLOCK + (aka function), but for reasons that should be explained elsewhere, + the GBE normally decides it should be in a "phantom BLOCK" associated + with the expand_start_stmt_expr() call. So push the topmost + sequence back onto the GBE's internal stack before telling it + about the decl, then restore it afterwards. */ + push_topmost_sequence (); - t = start_decl (t, FALSE); - finish_decl (t, NULL_TREE, FALSE); + t = start_decl (t, FALSE); + finish_decl (t, NULL_TREE, FALSE); - sequence_rtl_expr = back_end_bug; - } + pop_topmost_sequence (); resume_momentary (yes); -- 2.30.2