aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-02-10 11:29:39 -0500
committerJason Merrill <jason@gcc.gnu.org>2011-02-10 11:29:39 -0500
commit5b883ca61cf968fa32782309aa3750511b549889 (patch)
treedc276c2aad82f106457b7855e6995e5ea8788043 /gcc
parent72602cd16b4e34843845c7b39aa5028e211cdbbf (diff)
downloadgcc-5b883ca61cf968fa32782309aa3750511b549889.zip
gcc-5b883ca61cf968fa32782309aa3750511b549889.tar.gz
gcc-5b883ca61cf968fa32782309aa3750511b549889.tar.bz2
re PR c++/47511 ([C++0x] ICE: unexpected ast of kind template_decl in potential_constant_expression_1, at cp/semantics.c:7711)
PR c++/47511 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL. From-SVN: r170005
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/semantics.c1
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/regress/README3
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/regress/regress1.C (renamed from gcc/testsuite/g++.dg/cpp0x/constexpr-regress1.C)0
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/regress/regress2.C (renamed from gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C)0
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/regress/regress3.C13
7 files changed, 29 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 6dd6137..f247933 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/47511
+ * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
+
2011-02-03 Dodji Seketeli <dodji@redhat.com>
PR c++/47398
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 6d45fb9..7c06cc3 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -7263,6 +7263,7 @@ potential_constant_expression_1 (tree t, bool want_rval, tsubst_flags_t flags)
{
case FUNCTION_DECL:
case BASELINK:
+ case TEMPLATE_DECL:
case OVERLOAD:
case TEMPLATE_ID_EXPR:
case LABEL_DECL:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 649a0b7..c37a273 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2011-02-09 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/cpp0x/regress: New directory.
+ * g++.dg/cpp0x/constexpr-regress1.C: Move to regress/regress1.C.
+ * g++.dg/cpp0x/constexpr-regress2.C: Move to regress/regress2.C.
+ * g++.dg/cpp0x/regress/regress3.C: New.
+
2011-02-10 Richard Guenther <rguenther@suse.de>
PR tree-optimization/47677
diff --git a/gcc/testsuite/g++.dg/cpp0x/regress/README b/gcc/testsuite/g++.dg/cpp0x/regress/README
new file mode 100644
index 0000000..5c3402e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/regress/README
@@ -0,0 +1,3 @@
+This directory contains tests that were passing in C++98 mode but failing
+in C++0x mode; it should be replaced by an improvement to the test harness
+to run all tests in both modes.
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-regress1.C b/gcc/testsuite/g++.dg/cpp0x/regress/regress1.C
index a6fe399..a6fe399 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-regress1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/regress/regress1.C
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C b/gcc/testsuite/g++.dg/cpp0x/regress/regress2.C
index 470ee1c..470ee1c 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/regress/regress2.C
diff --git a/gcc/testsuite/g++.dg/cpp0x/regress/regress3.C b/gcc/testsuite/g++.dg/cpp0x/regress/regress3.C
new file mode 100644
index 0000000..ffbb97f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/regress/regress3.C
@@ -0,0 +1,13 @@
+// PR c++/47511
+// { dg-options -std=c++0x }
+
+namespace N {
+ template <typename T> bool g( T ) {
+ return true;
+ }
+ struct A { };
+}
+template <class T> void f(const T&) {
+ N::A x;
+ g(x) ;
+}