diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-05 20:46:18 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-05 20:46:18 +0000 |
commit | 377947013ea5c5f768dfe669da3361d061a5da51 (patch) | |
tree | 6d7e49043bdd0fb72e5fca632e820df584bec597 | |
parent | 732967ebbca22e1c04818fe86bcae4d7bbcdb603 (diff) | |
download | gcc-377947013ea5c5f768dfe669da3361d061a5da51.tar.gz |
* expr.c (cplus_expand_expr, case STMT_EXPR): Use
expand_start_stmt_expr and expand_end_stmt_expr directly. Set
RTL_EXPR_HAS_NO_SCOPE.
* pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little
later.
* dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32345 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/cp/dump.c | 2 | ||||
-rw-r--r-- | gcc/cp/expr.c | 5 | ||||
-rw-r--r-- | gcc/cp/pt.c | 6 |
4 files changed, 19 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2213278eb88..d1f5473cfaa 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,14 @@ +2000-03-05 Mark Mitchell <mark@codesourcery.com> + + * expr.c (cplus_expand_expr, case STMT_EXPR): Use + expand_start_stmt_expr and expand_end_stmt_expr directly. Set + RTL_EXPR_HAS_NO_SCOPE. + + * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little + later. + + * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. + 2000-03-05 Nathan Sidwell <nathan@codesourcery.com> * call.c (convert_like): Macrofy. diff --git a/gcc/cp/dump.c b/gcc/cp/dump.c index dc8f7540120..c8152d5336f 100644 --- a/gcc/cp/dump.c +++ b/gcc/cp/dump.c @@ -768,6 +768,8 @@ dequeue_and_dump (di) dump_string (di, "end"); if (SCOPE_NULLIFIED_P (t)) dump_string (di, "null"); + if (!SCOPE_NO_CLEANUPS_P (t)) + dump_string (di, "clnp"); dump_next_stmt (di, t); break; diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c index 05411e3f088..f8351811706 100644 --- a/gcc/cp/expr.c +++ b/gcc/cp/expr.c @@ -145,9 +145,10 @@ cplus_expand_expr (exp, target, tmode, modifier) case STMT_EXPR: { - tree rtl_expr = begin_stmt_expr (); + tree rtl_expr = expand_start_stmt_expr (); expand_stmt (STMT_EXPR_STMT (exp)); - finish_stmt_expr (rtl_expr); + expand_end_stmt_expr (rtl_expr); + RTL_EXPR_HAS_NO_SCOPE (rtl_expr) = 1; return expand_expr (rtl_expr, target, tmode, modifier); } break; diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index e6e079ce8a1..b9d46278656 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -9569,9 +9569,6 @@ instantiate_decl (d) try to instantiate it again. */ DECL_TEMPLATE_INSTANTIATED (d) = 1; - /* And we're not deferring instantiation any more. */ - TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (d)) = 0; - /* Regenerate the declaration in case the template has been modified by a subsequent redeclaration. */ regenerate_decl_from_template (d, td); @@ -9611,6 +9608,9 @@ instantiate_decl (d) expand_body (finish_function (lineno, 0)); } + /* We're not deferring instantiation any more. */ + TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (d)) = 0; + out: lineno = line; input_filename = file; |