From ff4bfb1056a816c881c9ffb0314b2ff202b32d03 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 3 Mar 2011 11:51:20 -0500 Subject: re PR c++/47950 ([C++0x] Internal compiler error: non-dependent declaration as condition causes tsubst_copy_and_build assertion failure.) PR c++/47950 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT. From-SVN: r170656 --- gcc/cp/pt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gcc/cp/pt.c') diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 4b262d0..60b2699 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -13368,7 +13368,11 @@ tsubst_copy_and_build (tree t, /* We can get here for a constant initializer of non-dependent type. FIXME stop folding in cp_parser_initializer_clause. */ gcc_assert (TREE_CONSTANT (t)); - return get_target_expr (RECUR (TARGET_EXPR_INITIAL (t))); + { + tree r = get_target_expr (RECUR (TARGET_EXPR_INITIAL (t))); + TREE_CONSTANT (r) = true; + return r; + } default: /* Handle Objective-C++ constructs, if appropriate. */ -- cgit v1.1