diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a6e5fd60c17..90b8773f418 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com) + + * tree.c (valid_machine_attribute): Only create a new type variant if + there is a decl to use it. + Thu Jul 16 14:48:04 1998 Nick Clifton * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have diff --git a/gcc/tree.c b/gcc/tree.c index ec42643f333..b02e87e8af4 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -3391,8 +3391,14 @@ valid_machine_attribute (attr_name, attr_args, decl, type) } else { + /* If this is part of a declaration, create a type variant, + otherwise, this is part of a type definition, so add it + to the base type. */ type_attr_list = tree_cons (attr_name, attr_args, type_attr_list); - type = build_type_attribute_variant (type, type_attr_list); + if (decl != 0) + type = build_type_attribute_variant (type, type_attr_list); + else + TYPE_ATTRIBUTES (type) = type_attr_list; } if (decl != 0) TREE_TYPE (decl) = type;