From: Jan Hubicka Date: Tue, 6 Nov 2018 15:41:32 +0000 (+0100) Subject: tree.c (fld_simplified_type_name): Break out form ... X-Git-Tag: upstream/12.2.0~28311 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1b62186ca2f6dfffe5b563bdef8d8fc2aff952cc;p=platform%2Fupstream%2Fgcc.git tree.c (fld_simplified_type_name): Break out form ... * tree.c (fld_simplified_type_name): Break out form ... (free_lang_data_in_type): ... here. (fld_type_variant_equal_p): Use it. From-SVN: r265847 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 77fcf1e..56809ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-11-06 Jan Hubicka + + * tree.c (fld_simplified_type_name): Break out form ... + (free_lang_data_in_type): ... here. + (fld_type_variant_equal_p): Use it. + 2018-11-06 Rainer Orth * config/default-d.c: Include memmodel.h. diff --git a/gcc/tree.c b/gcc/tree.c index 94a7c9c..fcd001f 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -5083,6 +5083,21 @@ fld_worklist_push (tree t, struct free_lang_data_d *fld) +/* Return simplified TYPE_NAME of TYPE. */ + +static tree +fld_simplified_type_name (tree type) +{ + if (!TYPE_NAME (type) || TREE_CODE (TYPE_NAME (type)) != TYPE_DECL) + return TYPE_NAME (type); + /* Drop TYPE_DECLs in TYPE_NAME in favor of the identifier in the + TYPE_DECL if the type doesn't have linkage. + this must match fld_ */ + if (type != TYPE_MAIN_VARIANT (type) || ! type_with_linkage_p (type)) + return DECL_NAME (TYPE_NAME (type)); + return TYPE_NAME (type); +} + /* Do same comparsion as check_qualified_type skipping lang part of type and be more permissive about type names: we only care that names are same (for diagnostics) and that ODR names are the same. */ @@ -5091,8 +5106,8 @@ static bool fld_type_variant_equal_p (tree t, tree v) { if (TYPE_QUALS (t) != TYPE_QUALS (v) - || TYPE_NAME (t) != TYPE_NAME (v) || TYPE_ALIGN (t) != TYPE_ALIGN (v) + || fld_simplified_type_name (t) != fld_simplified_type_name (v) || !attribute_list_equal (TYPE_ATTRIBUTES (t), TYPE_ATTRIBUTES (v))) return false; @@ -5338,12 +5353,11 @@ free_lang_data_in_type (tree type) } /* Drop TYPE_DECLs in TYPE_NAME in favor of the identifier in the - TYPE_DECL if the type doesn't have linkage. */ + TYPE_DECL if the type doesn't have linkage. + this must match fld_ */ if (type != TYPE_MAIN_VARIANT (type) || ! type_with_linkage_p (type)) - { - TYPE_NAME (type) = TYPE_IDENTIFIER (type); - TYPE_STUB_DECL (type) = NULL; - } + TYPE_STUB_DECL (type) = NULL; + TYPE_NAME (type) = fld_simplified_type_name (type); }