aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-03-03 11:51:20 -0500
committerJason Merrill <jason@gcc.gnu.org>2011-03-03 11:51:20 -0500
commitff4bfb1056a816c881c9ffb0314b2ff202b32d03 (patch)
treeba8fcf7f60e077055e0bd02dfffa6f53fef14968 /gcc
parent423ed4163b160e8fa81758ed53e54c60040f3c0f (diff)
downloadgcc-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')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/pt.c6
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. */