aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/pt.c2
-rw-r--r--gcc/testsuite/g++.dg/template/inherit9.C15
3 files changed, 22 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a574f2a..61e681a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2013-09-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/58273
+ * pt.c (any_type_dependent_elements_p): Actually check for
+ type-dependence, not value-dependence.
+
2013-09-13 Jacek Caban <jacek@codeweavers.com>
* decl.c: Use new cxx_implicit_extern_c hook
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 3ae679a..d560e3c 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -20456,7 +20456,7 @@ bool
any_type_dependent_elements_p (const_tree list)
{
for (; list; list = TREE_CHAIN (list))
- if (value_dependent_expression_p (TREE_VALUE (list)))
+ if (type_dependent_expression_p (TREE_VALUE (list)))
return true;
return false;
diff --git a/gcc/testsuite/g++.dg/template/inherit9.C b/gcc/testsuite/g++.dg/template/inherit9.C
new file mode 100644
index 0000000..926343b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/inherit9.C
@@ -0,0 +1,15 @@
+// PR c++/58273
+
+class A {};
+class B
+{
+ int goo(A);
+};
+template<typename E>
+class D : public B
+{
+ void foo(A t)
+ {
+ int const i(B::goo(t));
+ }
+};