OSDN Git Service

* error.c (interesting_scope_p): New fn.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Dec 1998 11:26:57 +0000 (11:26 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Dec 1998 11:26:57 +0000 (11:26 +0000)
(dump_simple_decl): Use it.
(dump_expr, case CONSTRUCTOR): Force a & for a PMF.
(dump_expr, case OFFSET_REF): Print ->* if appropriate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24372 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/error.c

index 3f04c56..86901b8 100644 (file)
@@ -1,3 +1,10 @@
+1998-12-17  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * error.c (interesting_scope_p): New fn.
+       (dump_simple_decl): Use it.
+       (dump_expr, case CONSTRUCTOR): Force a & for a PMF.
+       (dump_expr, case OFFSET_REF): Print ->* if appropriate.
+
 1998-12-16  Mark Mitchell  <mark@markmitchell.com>
 
        * class.c (resolve_address_of_overloaded_function): Do conversion
index fba5005..d5e2877 100644 (file)
@@ -114,6 +114,20 @@ init_error ()
   scratch_firstobj = (char *)obstack_alloc (&scratch_obstack, 0);
 }
 
+/* Returns nonzero if SCOPE is something we want to print for random decls.  */
+
+static int
+interesting_scope_p (scope)
+     tree scope;
+{
+  if (scope == NULL_TREE
+      || scope == global_namespace)
+    return 0;
+
+  return (TREE_CODE (scope) == NAMESPACE_DECL
+         || AGGREGATE_TYPE_P (scope));
+}
+
 static void
 dump_qualifiers (t, p)
      tree t;
@@ -679,7 +693,7 @@ dump_simple_decl (t, type, v)
       dump_type_prefix (type, v, 0);
       OB_PUTC (' ');
     }
-  if (CP_DECL_CONTEXT (t) != global_namespace)
+  if (interesting_scope_p (DECL_CONTEXT (t)))
     {
       dump_decl (DECL_CONTEXT (t), 0);
       OB_PUTC2 (':',':');
@@ -1559,7 +1573,7 @@ dump_expr (t, nop)
          if (integer_all_onesp (idx))
            {
              tree pfn = PFN_FROM_PTRMEMFUNC (t);
-             dump_expr (pfn, 0);
+             dump_unary_op ("&", pfn, 0);
              break;
            }
          if (TREE_CODE (idx) == INTEGER_CST
@@ -1608,8 +1622,16 @@ dump_expr (t, nop)
          }
        else
          {
-           dump_expr (TREE_OPERAND (t, 0), 0);
-           OB_PUTS (" .* ");
+           if (TREE_CODE (ob) == INDIRECT_REF)
+             {
+               dump_expr (TREE_OPERAND (ob, 0), 0);
+               OB_PUTS (" ->* ");
+             }
+           else
+             {
+               dump_expr (ob, 0);
+               OB_PUTS (" .* ");
+             }
            dump_expr (TREE_OPERAND (t, 1), 0);
          }
        break;