aboutsummaryrefslogtreecommitdiff
path: root/gcc/f
diff options
context:
space:
mode:
authorCraig Burley <burley@gnu.org>1998-07-13 08:11:43 -0400
committerDave Love <fx@gcc.gnu.org>1998-07-13 12:11:43 +0000
commit6bf7163510fdc0fa77bd4bbcf837ab66e05bb28a (patch)
tree8da917525f4e16601414b35668568be5a8c22208 /gcc/f
parent4d1a91c2bf4e81b4c260a072c411d3bfc5ca6dd8 (diff)
downloadgcc-6bf7163510fdc0fa77bd4bbcf837ab66e05bb28a.zip
gcc-6bf7163510fdc0fa77bd4bbcf837ab66e05bb28a.tar.gz
gcc-6bf7163510fdc0fa77bd4bbcf837ab66e05bb28a.tar.bz2
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 <burley@gnu.org> * 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
Diffstat (limited to 'gcc/f')
-rw-r--r--gcc/f/ChangeLog6
-rw-r--r--gcc/f/com.c19
2 files changed, 16 insertions, 9 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index c53f10d..0581add 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,9 @@
+Mon Jul 13 11:54:03 1998 Craig Burley <burley@gnu.org>
+
+ * 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 <d.love@dl.ac.uk>
* version.c: Bump version.
diff --git a/gcc/f/com.c b/gcc/f/com.c
index 17993a9..6481642 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);