diff options
author | Craig Burley <burley@gnu.org> | 1998-07-13 08:11:43 -0400 |
---|---|---|
committer | Dave Love <fx@gcc.gnu.org> | 1998-07-13 12:11:43 +0000 |
commit | 6bf7163510fdc0fa77bd4bbcf837ab66e05bb28a (patch) | |
tree | 8da917525f4e16601414b35668568be5a8c22208 /gcc/f | |
parent | 4d1a91c2bf4e81b4c260a072c411d3bfc5ca6dd8 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/f/com.c | 19 |
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); |