{
tree remove = TREE_TYPE (newdecl);
if (TYPE_MAIN_VARIANT (remove) == remove)
- {
- gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE);
- /* If remove is the main variant, no need to remove that
- from the list. One of the DECL_ORIGINAL_TYPE
- variants, e.g. created for aligned attribute, might still
- refer to the newdecl TYPE_DECL though, so remove that one
- in that case. */
- if (DECL_ORIGINAL_TYPE (newdecl)
- && DECL_ORIGINAL_TYPE (newdecl) != remove)
- for (tree t = TYPE_MAIN_VARIANT (DECL_ORIGINAL_TYPE (newdecl));
- ; t = TYPE_MAIN_VARIANT (t))
- if (TYPE_NAME (TYPE_NEXT_VARIANT (t)) == newdecl)
- {
- TYPE_NEXT_VARIANT (t)
- = TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t));
- break;
- }
- }
+ gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE);
else
for (tree t = TYPE_MAIN_VARIANT (remove); ;
t = TYPE_NEXT_VARIANT (t))
{
tree remove = TREE_TYPE (newdecl);
if (TYPE_MAIN_VARIANT (remove) == remove)
- {
- gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE);
- /* If remove is the main variant, no need to remove that
- from the list. One of the DECL_ORIGINAL_TYPE
- variants, e.g. created for aligned attribute, might still
- refer to the newdecl TYPE_DECL though, so remove that one
- in that case. */
- if (tree orig = DECL_ORIGINAL_TYPE (newdecl))
- if (orig != remove)
- for (tree t = TYPE_MAIN_VARIANT (orig); ;
- t = TYPE_MAIN_VARIANT (t))
- if (TYPE_NAME (TYPE_NEXT_VARIANT (t)) == newdecl)
- {
- TYPE_NEXT_VARIANT (t)
- = TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t));
- break;
- }
- }
+ gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE);
else
for (tree t = TYPE_MAIN_VARIANT (remove); ;
t = TYPE_NEXT_VARIANT (t))