]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/41038 (Parsing error related to qualified name id)
authorJason Merrill <jason@redhat.com>
Wed, 7 Oct 2009 18:56:28 +0000 (14:56 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Wed, 7 Oct 2009 18:56:28 +0000 (14:56 -0400)
PR c++/41038
* tree.c (build_qualified_name): Call convert_from_reference.

From-SVN: r152536

gcc/cp/ChangeLog
gcc/cp/tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/scope3.C [new file with mode: 0644]

index bb800f1b27c0b30b2c404bfa39bb29a8a03fbdd2..bb4ec8d5bc2e371f710219c71c6e25d2954dbaa4 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-07  Jason Merrill  <jason@redhat.com>
+
+       PR c++/41038
+       * tree.c (build_qualified_name): Call convert_from_reference.
+
 2009-10-06  Jason Merrill  <jason@redhat.com>
 
        Fix lookup of initialized captures in unevaluated context.
index 1cd2bf596f8b7fd91b3a508491867de47ce8b6d9..156a09e25a607a4206d2309b30f54ae8952d2fa9 100644 (file)
@@ -1284,6 +1284,8 @@ build_qualified_name (tree type, tree scope, tree name, bool template_p)
     return error_mark_node;
   t = build2 (SCOPE_REF, type, scope, name);
   QUALIFIED_NAME_IS_TEMPLATE (t) = template_p;
+  if (type)
+    t = convert_from_reference (t);
   return t;
 }
 
index ea24c57348fa479837b1ed135ae04323f1dbef06..a7b7a16508a0f9f80d6cb0619d275b3a8d51b49a 100644 (file)
@@ -1,3 +1,7 @@
+2009-10-07  Jason Merrill  <jason@redhat.com>
+
+       * g++.dg/template/scope3.C: New.
+
 2009-10-07  Jakub Jelinek  <jakub@redhat.com>
 
        * gcc.dg/debug/dwarf2/inline3.c: New test.
diff --git a/gcc/testsuite/g++.dg/template/scope3.C b/gcc/testsuite/g++.dg/template/scope3.C
new file mode 100644 (file)
index 0000000..c191c79
--- /dev/null
@@ -0,0 +1,15 @@
+// PR c++/41038
+
+struct S
+{
+    int size() const;
+};
+
+template<typename T>
+struct Packer
+{
+    int foo() {
+        return  Packer::var.size();
+    }
+    const S& var;
+};