diff options
author | Jason Merrill <jason@redhat.com> | 2011-02-10 11:29:39 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-02-10 11:29:39 -0500 |
commit | 5b883ca61cf968fa32782309aa3750511b549889 (patch) | |
tree | dc276c2aad82f106457b7855e6995e5ea8788043 /gcc | |
parent | 72602cd16b4e34843845c7b39aa5028e211cdbbf (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/regress/README | 3 | ||||
-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.C | 13 |
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) ; +} |