diff options
author | Jason Merrill <jason@redhat.com> | 2011-03-03 11:51:20 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-03-03 11:51:20 -0500 |
commit | ff4bfb1056a816c881c9ffb0314b2ff202b32d03 (patch) | |
tree | ba8fcf7f60e077055e0bd02dfffa6f53fef14968 /gcc/cp | |
parent | 423ed4163b160e8fa81758ed53e54c60040f3c0f (diff) | |
download | gcc-ff4bfb1056a816c881c9ffb0314b2ff202b32d03.zip gcc-ff4bfb1056a816c881c9ffb0314b2ff202b32d03.tar.gz gcc-ff4bfb1056a816c881c9ffb0314b2ff202b32d03.tar.bz2 |
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
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/pt.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 264bc7c..ef766fb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -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 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. */ |