OSDN Git Service

* tree.c (valid_machine_attribute): Only create a new type variant if
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Jul 1998 03:34:34 +0000 (03:34 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Jul 1998 03:34:34 +0000 (03:34 +0000)
there is a decl to use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21247 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree.c

index a6e5fd6..90b8773 100644 (file)
@@ -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  <nickc@cygnus.com>
 
        * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
index ec42643..b02e87e 100644 (file)
@@ -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;