From 1c31ca71a7923d16e6ccba733edf14db0b399be9 Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Fri, 11 Feb 2011 18:27:00 +0100 Subject: [PATCH] Revert "Fix PR c++/47172" gcc/cp/ * pt.c (finish_call_expr, dependent_type_p) (type_dependent_expression_p): Revert the previous attempt to fix PR c++/47172. gcc/testsuite/ * g++.dg/template/inherit6.C: Reverted. From-SVN: r170055 --- gcc/cp/ChangeLog | 7 ------- gcc/cp/pt.c | 7 ++----- gcc/cp/semantics.c | 14 +------------- gcc/testsuite/ChangeLog | 5 ----- gcc/testsuite/g++.dg/template/inherit6.C | 23 ----------------------- 5 files changed, 3 insertions(+), 53 deletions(-) delete mode 100644 gcc/testsuite/g++.dg/template/inherit6.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 98c5668e852..c3f780abe04 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,10 +1,3 @@ -2011-02-11 Dodji Seketeli - - PR c++/47172 - * pt.c (finish_call_expr): Consider a call expression that has a - dependent "this" pointer as being dependent. Add comments. - (dependent_type_p, type_dependent_expression_p): Update comments. - 2011-02-09 Jason Merrill * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index a55a35ad4db..d59f32a7ea7 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -17912,7 +17912,7 @@ dependent_type_p_r (tree type) } /* Returns TRUE if TYPE is dependent, in the sense of - [temp.dep.type]. Note that a NULL type is considered dependent. */ + [temp.dep.type]. */ bool dependent_type_p (tree type) @@ -18184,10 +18184,7 @@ value_dependent_expression_p (tree expression) } /* Returns TRUE if the EXPRESSION is type-dependent, in the sense of - [temp.dep.expr]. Note that an expression with no type is - considered dependent. Other parts of the compiler arrange for an - expression with type-dependent subexpressions to have no type, so - this function doesn't have to be fully recursive. */ + [temp.dep.expr]. */ bool type_dependent_expression_p (tree expression) diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index a941b3bc74e..58a59eecacf 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2028,20 +2028,8 @@ finish_call_expr (tree fn, VEC(tree,gc) **args, bool disallow_virtual, if (processing_template_decl) { - /* If the call expression is dependent, build a CALL_EXPR node - with no type; type_dependent_expression_p recognizes - expressions with no type as being dependent. */ if (type_dependent_expression_p (fn) - || any_type_dependent_arguments_p (*args) - /* For a non-static member function, we need to specifically - test the type dependency of the "this" pointer because it - is not included in *ARGS even though it is considered to - be part of the list of arguments. Note that this is - related to CWG issues 515 and 1005. */ - || (TREE_CODE (fn) == FUNCTION_DECL - && DECL_NONSTATIC_MEMBER_FUNCTION_P (fn) - && current_class_ref - && type_dependent_expression_p (current_class_ref))) + || any_type_dependent_arguments_p (*args)) { result = build_nt_call_vec (fn, *args); KOENIG_LOOKUP_P (result) = koenig_p; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fd9b806db67..fac52940dde 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -22,11 +22,6 @@ * gcc.dg/ucnid-8.c: Likewise. * Adapt dg-warning line number. -2011-02-11 Dodji Seketeli - - PR c++/47172 - * g++.dg/template/inherit6.C: New test. - 2011-02-10 Uros Bizjak * gcc.target/i386/parity-1.c: Use -march=k8. diff --git a/gcc/testsuite/g++.dg/template/inherit6.C b/gcc/testsuite/g++.dg/template/inherit6.C deleted file mode 100644 index 241a68e5e4a..00000000000 --- a/gcc/testsuite/g++.dg/template/inherit6.C +++ /dev/null @@ -1,23 +0,0 @@ -// Origin PR c++/47172 -// { dg-options "-std=c++0x" } -// { dg-do compile } - -struct A -{ - int f() const; -}; - -template -struct B : A { }; - -template -struct C : B -{ - void g(); -}; - -template -void C::g() -{ - A::f(); -} -- 2.30.2