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:
parent
79cc53125a
commit
ce2e5191bc
@ -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.
|
||||
|
25
gcc/cp/pt.c
25
gcc/cp/pt.c
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user