c-ada-spec.c (dump_ada_declaration): Generate a forward declaration for a typedef independently of whether the...

* c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Generate a forward
	declaration for a typedef independently of whether the declaration of
	the subtype is generated.

From-SVN: r261058
This commit is contained in:
Eric Botcazou 2018-06-01 08:36:20 +00:00 committed by Eric Botcazou
parent 67e5c59afb
commit abc24d932c
2 changed files with 16 additions and 4 deletions

View file

@ -1,3 +1,9 @@
2018-06-01 Eric Botcazou <ebotcazou@adacore.com>
* c-ada-spec.c (dump_ada_declaration) <TYPE_DECL>: Generate a forward
declaration for a typedef independently of whether the declaration of
the subtype is generated.
2018-05-31 Martin Sebor <msebor@redhat.com>
PR c/82063

View file

@ -2734,19 +2734,25 @@ dump_ada_declaration (pretty_printer *buffer, tree t, tree type, int spc)
if (TYPE_NAME (typ))
{
/* If types have same representation, and same name (ignoring
casing), then ignore the second type. */
/* If the types have the same name (ignoring casing), then ignore
the second type, but forward declare the first if need be. */
if (type_name (typ) == type_name (TREE_TYPE (t))
|| !strcasecmp (type_name (typ), type_name (TREE_TYPE (t))))
{
if (RECORD_OR_UNION_TYPE_P (typ) && !TREE_VISITED (stub))
{
INDENT (spc);
dump_forward_type (buffer, typ, t, 0);
}
TREE_VISITED (t) = 1;
return 0;
}
INDENT (spc);
if (RECORD_OR_UNION_TYPE_P (typ))
dump_forward_type (buffer, stub, t, spc);
if (RECORD_OR_UNION_TYPE_P (typ) && !TREE_VISITED (stub))
dump_forward_type (buffer, typ, t, spc);
pp_string (buffer, "subtype ");
dump_ada_node (buffer, t, type, spc, false, true);