]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/48489 (Invalid error message 'has no member named' when referring directly...
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 17 Oct 2011 09:48:02 +0000 (09:48 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 17 Oct 2011 09:48:02 +0000 (09:48 +0000)
/cp
2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/48489
* typeck.c (finish_class_member_access_expr): Fix error call
for TREE_CODE (access_path) == TREE_BINFO.

/testsuite
2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/48489
* g++.dg/inherit/error5.C: New.

From-SVN: r180080

gcc/cp/ChangeLog
gcc/cp/typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/inherit/error5.C [new file with mode: 0644]

index c2c452d2cd5c44edb66ad6ab4444981fcc53eba3..7b8f5e2d199bd66906400b386863851b1ee4b232 100644 (file)
@@ -1,3 +1,9 @@
+2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/48489
+       * typeck.c (finish_class_member_access_expr): Fix error call
+       for TREE_CODE (access_path) == TREE_BINFO.
+
 2011-10-15  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/50732
index 305f8f5b937cb4805b78e2987443aadaf54994ae..40cf1080c23f2e2bea1140fbcdab689c09240524 100644 (file)
@@ -2591,7 +2591,9 @@ finish_class_member_access_expr (tree object, tree name, bool template_p,
          if (member == NULL_TREE)
            {
              if (complain & tf_error)
-               error ("%qD has no member named %qE", object_type, name);
+               error ("%qD has no member named %qE",
+                      TREE_CODE (access_path) == TREE_BINFO
+                      ? TREE_TYPE (access_path) : object_type, name);
              return error_mark_node;
            }
          if (member == error_mark_node)
index 4828e0994041142d1f305d19dc3a1c910fde23c0..11ae542c0f4d2d4b9e37eb074fd322c70910d857 100644 (file)
@@ -1,3 +1,8 @@
+2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/48489
+       * g++.dg/inherit/error5.C: New.
+
 2011-10-17  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/47023
diff --git a/gcc/testsuite/g++.dg/inherit/error5.C b/gcc/testsuite/g++.dg/inherit/error5.C
new file mode 100644 (file)
index 0000000..e38e106
--- /dev/null
@@ -0,0 +1,14 @@
+// PR c++/48489
+
+struct Base{ };
+
+struct Concrete : Base 
+{
+  void setValue();
+};
+
+int main()
+{
+  Concrete d;
+  d.Base::setValue(); // { dg-error "struct Base" }
+}