pt.c (tsubst_expr, [...]): Don't process if tsubsting fails.

* pt.c (tsubst_expr, DECL_STMT case): Don't process if
	tsubsting fails.

From-SVN: r36720
This commit is contained in:
Nathan Sidwell 2000-10-05 08:31:15 +00:00 committed by Nathan Sidwell
parent 79cc53125a
commit ce2e5191bc
2 changed files with 19 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2000-10-05 Nathan Sidwell <nathan@codesourcery.com>
* pt.c (tsubst_expr, DECL_STMT case): Don't process if
tsubsting fails.
2000-10-05 Nathan Sidwell <nathan@codesourcery.com>
* spew.c (frob_id): New static function.

View File

@ -7145,17 +7145,20 @@ tsubst_expr (t, args, complain, in_decl)
init = DECL_INITIAL (decl);
decl = tsubst (decl, args, complain, in_decl);
init = tsubst_expr (init, args, complain, in_decl);
if (init)
DECL_INITIAL (decl) = error_mark_node;
/* By marking the declaration as instantiated, we avoid
trying to instantiate it. Since instantiate_decl can't
handle local variables, and since we've already done
all that needs to be done, that's the right thing to
do. */
if (TREE_CODE (decl) == VAR_DECL)
DECL_TEMPLATE_INSTANTIATED (decl) = 1;
maybe_push_decl (decl);
cp_finish_decl (decl, init, NULL_TREE, 0);
if (decl != error_mark_node)
{
if (init)
DECL_INITIAL (decl) = error_mark_node;
/* By marking the declaration as instantiated, we avoid
trying to instantiate it. Since instantiate_decl can't
handle local variables, and since we've already done
all that needs to be done, that's the right thing to
do. */
if (TREE_CODE (decl) == VAR_DECL)
DECL_TEMPLATE_INSTANTIATED (decl) = 1;
maybe_push_decl (decl);
cp_finish_decl (decl, init, NULL_TREE, 0);
}
}
return decl;
}