+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
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;
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 (':',':');
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
}
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;