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
This commit is contained in:
Jason Merrill 2011-03-03 11:51:20 -05:00 committed by Jason Merrill
parent 423ed4163b
commit ff4bfb1056
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-03-03 Jason Merrill <jason@redhat.com>
PR c++/47950
* pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
2011-03-02 Jason Merrill <jason@redhat.com>
PR c++/47950

View File

@ -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. */