]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/57253 (GCC ignores ref-qualifiers of pseudo-function types in explicit...
authorJason Merrill <jason@redhat.com>
Mon, 13 May 2013 19:32:22 +0000 (15:32 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 13 May 2013 19:32:22 +0000 (15:32 -0400)
PR c++/57253
* decl.c (grokdeclarator): Apply ref-qualifier
in the TYPENAME case.

From-SVN: r198842

gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/testsuite/g++.dg/cpp0x/ref-qual11.C [new file with mode: 0644]

index eab529a1831df6c5b10cf4a93efdfa461eeccf49..e1eda6a0fad6901b0d7d03ca5b25ae7f392b5c65 100644 (file)
@@ -1,5 +1,9 @@
 2013-05-13  Jason Merrill  <jason@redhat.com>
 
+       PR c++/57253
+       * decl.c (grokdeclarator): Apply ref-qualifier
+       in the TYPENAME case.
+
        PR c++/57252
        * decl.c (decls_match): Compare ref-qualifiers.
 
index 0df3ae86a29f5be4d31a3c2fbd0dd54a8f6087ce..67e67e6079fb0a0aee97c6e761a851a445c8dff8 100644 (file)
@@ -10284,7 +10284,7 @@ grokdeclarator (const cp_declarator *declarator,
              type = void_type_node;
            }
        }
-      else if (memfn_quals)
+      else if (memfn_quals || rqual)
        {
          if (ctype == NULL_TREE
              && TREE_CODE (type) == METHOD_TYPE)
diff --git a/gcc/testsuite/g++.dg/cpp0x/ref-qual11.C b/gcc/testsuite/g++.dg/cpp0x/ref-qual11.C
new file mode 100644 (file)
index 0000000..15dd049
--- /dev/null
@@ -0,0 +1,10 @@
+// PR c++/57253
+// { dg-require-effective-target c++11 }
+
+template<typename T> struct foo;
+
+template<> struct foo<void()&> {};
+template<> struct foo<void()> {};
+
+int main()
+{}