From d1d697eae32d06055e772111df2dc099544c7369 Mon Sep 17 00:00:00 2001 From: jason Date: Thu, 10 Feb 2011 16:29:39 +0000 Subject: [PATCH] PR c++/47511 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170005 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/semantics.c | 1 + gcc/testsuite/ChangeLog | 7 +++++++ gcc/testsuite/g++.dg/cpp0x/regress/README | 3 +++ .../cpp0x/{constexpr-regress1.C => regress/regress1.C} | 0 .../cpp0x/{constexpr-regress2.C => regress/regress2.C} | 0 gcc/testsuite/g++.dg/cpp0x/regress/regress3.C | 13 +++++++++++++ 7 files changed, 29 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/regress/README rename gcc/testsuite/g++.dg/cpp0x/{constexpr-regress1.C => regress/regress1.C} (100%) rename gcc/testsuite/g++.dg/cpp0x/{constexpr-regress2.C => regress/regress2.C} (100%) create mode 100644 gcc/testsuite/g++.dg/cpp0x/regress/regress3.C 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 + + PR c++/47511 + * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL. + 2011-02-03 Dodji Seketeli 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 + + * 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 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 similarity index 100% rename from gcc/testsuite/g++.dg/cpp0x/constexpr-regress1.C rename to 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 similarity index 100% rename from gcc/testsuite/g++.dg/cpp0x/constexpr-regress2.C rename to 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 bool g( T ) { + return true; + } + struct A { }; +} +template void f(const T&) { + N::A x; + g(x) ; +} -- 2.7.4