gimple.c (iterative_hash_type_name): Do not handle special anonymous names.
2009-10-11 Richard Guenther <rguenther@suse.de> * gimple.c (iterative_hash_type_name): Do not handle special anonymous names. cp/ * tree.c (cp_free_lang_data): Drop anonymous aggregate names. From-SVN: r152643
This commit is contained in:
parent
b09ee6aaf7
commit
652a8c1cde
4 changed files with 20 additions and 15 deletions
|
@ -1,3 +1,8 @@
|
|||
2009-10-11 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gimple.c (iterative_hash_type_name): Do not handle special
|
||||
anonymous names.
|
||||
|
||||
2009-10-11 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2009-10-11 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree.c (cp_free_lang_data): Drop anonymous aggregate names.
|
||||
|
||||
2009-10-08 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/36816
|
||||
|
|
|
@ -3129,6 +3129,17 @@ cp_free_lang_data (tree t)
|
|||
DECL_EXTERNAL (t) = 1;
|
||||
TREE_STATIC (t) = 0;
|
||||
}
|
||||
if (CP_AGGREGATE_TYPE_P (t)
|
||||
&& TYPE_NAME (t))
|
||||
{
|
||||
tree name = TYPE_NAME (t);
|
||||
if (TREE_CODE (name) == TYPE_DECL)
|
||||
name = DECL_NAME (name);
|
||||
/* Drop anonymous names. */
|
||||
if (name != NULL_TREE
|
||||
&& ANON_AGGRNAME_P (name))
|
||||
TYPE_NAME (t) = NULL_TREE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
15
gcc/gimple.c
15
gcc/gimple.c
|
@ -3591,21 +3591,6 @@ iterative_hash_type_name (tree type, hashval_t v)
|
|||
if (!name)
|
||||
return v;
|
||||
gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE);
|
||||
/* Do not hash names of anonymous unions. At least the C++ FE insists
|
||||
to have a non-NULL TYPE_NAME for them. See cp/cp-tree.h for all
|
||||
the glory. */
|
||||
#ifndef NO_DOT_IN_LABEL
|
||||
if (IDENTIFIER_POINTER (name)[0] == '.')
|
||||
return v;
|
||||
#else
|
||||
#ifndef NO_DOLLAR_IN_LABEL
|
||||
if (IDENTIFIER_POINTER (name)[0] == '$')
|
||||
return v;
|
||||
#else
|
||||
if (!strncmp (IDENTIFIER_POINTER (name), "__anon_", sizeof ("__anon_") - 1))
|
||||
return v;
|
||||
#endif
|
||||
#endif
|
||||
return iterative_hash_object (IDENTIFIER_HASH_VALUE (name), v);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue