From f585f69b311a84ebee46c78f5649fb1f500859a4 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 6 Aug 2013 21:17:36 -0400 Subject: [PATCH] re PR c++/57825 (Template specialization for ref qualified member pointers) PR c++/57825 * tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier. From-SVN: r201550 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/tree.c | 2 ++ gcc/testsuite/g++.dg/cpp0x/ref-qual14.C | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/ref-qual14.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index f85fd3f1b32..5083f7016cc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2013-08-06 Jason Merrill + + PR c++/57825 + * tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier. + 2013-08-05 Paolo Carlini PR c++/58080 diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index f8b4bbce822..63ec7fa7266 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1236,6 +1236,8 @@ strip_typedefs (tree t) result = build_method_type_directly (class_type, type, TREE_CHAIN (arg_types)); + result + = build_ref_qualified_type (result, type_memfn_rqual (t)); } else { diff --git a/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C b/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C new file mode 100644 index 00000000000..8e55551aeb2 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/ref-qual14.C @@ -0,0 +1,18 @@ +// PR c++/57825 +// { dg-do compile { target c++11 } } + +template +struct target_class +{}; + +template +struct target_class +{}; + +template +struct target_class +{}; + +template +struct target_class +{}; -- 2.30.2