Commit 07389efe by Mark Mitchell Committed by Mark Mitchell

error.c (dump_simple_decl): New function, broken out from ...

	* error.c (dump_simple_decl): New function, broken out from ...
	(dump_decl): Use it.

From-SVN: r19694
parent fa03cbe9
Tue May 12 07:24:18 1998 Mark Mitchell <mmitchell@usa.net>
* error.c (dump_simple_decl): New function, broken out from ...
(dump_decl): Use it.
Mon May 11 11:38:07 1998 Mark Mitchell <mmitchell@usa.net> Mon May 11 11:38:07 1998 Mark Mitchell <mmitchell@usa.net>
* ptree.c (lang_print_xnode): Add missing `break'. * ptree.c (lang_print_xnode): Add missing `break'.
......
...@@ -90,6 +90,7 @@ enum pad { none, before, after }; ...@@ -90,6 +90,7 @@ enum pad { none, before, after };
static void dump_type PROTO((tree, int)); static void dump_type PROTO((tree, int));
static void dump_type_real PROTO((tree, int, int)); static void dump_type_real PROTO((tree, int, int));
static void dump_simple_decl PROTO((tree, tree, int));
static void dump_decl PROTO((tree, int)); static void dump_decl PROTO((tree, int));
static void dump_function_decl PROTO((tree, int)); static void dump_function_decl PROTO((tree, int));
static void dump_expr PROTO((tree, int)); static void dump_expr PROTO((tree, int));
...@@ -646,6 +647,33 @@ dump_global_iord (t) ...@@ -646,6 +647,33 @@ dump_global_iord (t)
} }
static void static void
dump_simple_decl (t, type, v)
tree t;
tree type;
int v;
{
if (v > 0)
{
dump_type_prefix (type, v, 0);
OB_PUTC (' ');
dump_readonly_or_volatile (t, after);
}
/* DECL_CLASS_CONTEXT isn't being set in some cases. Hmm... */
if (DECL_CONTEXT (t)
&& TREE_CODE_CLASS (TREE_CODE (DECL_CONTEXT (t))) == 't')
{
dump_type (DECL_CONTEXT (t), 0);
OB_PUTC2 (':', ':');
}
if (DECL_NAME (t))
dump_decl (DECL_NAME (t), v);
else
OB_PUTS ("{anon}");
if (v > 0)
dump_type_suffix (type, v, 0);
}
static void
dump_decl (t, v) dump_decl (t, v)
tree t; tree t;
int v; /* verbosity */ int v; /* verbosity */
...@@ -674,7 +702,8 @@ dump_decl (t, v) ...@@ -674,7 +702,8 @@ dump_decl (t, v)
} }
if (v > 0) if (v > 0)
OB_PUTS ("typedef "); OB_PUTS ("typedef ");
goto general; dump_simple_decl (t, DECL_ORIGINAL_TYPE (t)
? DECL_ORIGINAL_TYPE (t) : TREE_TYPE (t), v);
break; break;
case VAR_DECL: case VAR_DECL:
...@@ -687,26 +716,7 @@ dump_decl (t, v) ...@@ -687,26 +716,7 @@ dump_decl (t, v)
/* else fall through */ /* else fall through */
case FIELD_DECL: case FIELD_DECL:
case PARM_DECL: case PARM_DECL:
general: dump_simple_decl (t, TREE_TYPE (t), v);
if (v > 0)
{
dump_type_prefix (TREE_TYPE (t), v, 0);
OB_PUTC (' ');
dump_readonly_or_volatile (t, after);
}
/* DECL_CLASS_CONTEXT isn't being set in some cases. Hmm... */
if (DECL_CONTEXT (t)
&& TREE_CODE_CLASS (TREE_CODE (DECL_CONTEXT (t))) == 't')
{
dump_type (DECL_CONTEXT (t), 0);
OB_PUTC2 (':', ':');
}
if (DECL_NAME (t))
dump_decl (DECL_NAME (t), v);
else
OB_PUTS ("{anon}");
if (v > 0)
dump_type_suffix (TREE_TYPE (t), v, 0);
break; break;
case NAMESPACE_DECL: case NAMESPACE_DECL:
...@@ -875,7 +885,7 @@ dump_decl (t, v) ...@@ -875,7 +885,7 @@ dump_decl (t, v)
if ((TREE_TYPE (t) != NULL_TREE && NEXT_CODE (t) == ENUMERAL_TYPE) if ((TREE_TYPE (t) != NULL_TREE && NEXT_CODE (t) == ENUMERAL_TYPE)
|| (DECL_INITIAL (t) && || (DECL_INITIAL (t) &&
TREE_CODE (DECL_INITIAL (t)) == TEMPLATE_PARM_INDEX)) TREE_CODE (DECL_INITIAL (t)) == TEMPLATE_PARM_INDEX))
goto general; dump_simple_decl (t, TREE_TYPE (t), v);
else if (DECL_NAME (t)) else if (DECL_NAME (t))
dump_decl (DECL_NAME (t), v); dump_decl (DECL_NAME (t), v);
else if (DECL_INITIAL (t)) else if (DECL_INITIAL (t))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment