(dbxout_symbol): For anonymous enum, output type anyway.

From-SVN: r2246
This commit is contained in:
Richard Stallman 1992-09-25 06:26:22 +00:00
parent f979c996cd
commit 3b6c7a7df8
1 changed files with 18 additions and 0 deletions

View File

@ -1445,6 +1445,7 @@ dbxout_symbol (decl, local)
{
int tag_needed = 1;
int did_output = 0;
if (DECL_NAME (decl))
{
@ -1504,6 +1505,7 @@ dbxout_symbol (decl, local)
dbxout_type (type, 1, 0);
dbxout_finish_symbol (decl);
did_output = 1;
}
if (tag_needed && TYPE_NAME (type) != 0
@ -1527,6 +1529,22 @@ dbxout_symbol (decl, local)
IDENTIFIER_POINTER (name));
dbxout_type (type, 1, 0);
dbxout_finish_symbol (NULL_TREE);
did_output = 1;
}
/* If an enum type has no name, it cannot be referred to,
but we must output it anyway, since the enumeration constants
can be referred to. */
if (!did_output && TREE_CODE (type) == ENUMERAL_TYPE)
{
current_sym_code = DBX_TYPE_DECL_STABS_CODE;
current_sym_value = 0;
current_sym_addr = 0;
current_sym_nchars = 2;
fprintf (asmfile, "%s \":T", ASM_STABS_OP);
dbxout_type (type, 1, 0);
dbxout_finish_symbol (NULL_TREE);
}
/* Prevent duplicate output of a typedef. */