]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c-parse.in (typename): Do not split attributes.
authorAldy Hernandez <aldyh@redhat.com>
Sat, 15 Dec 2001 04:06:05 +0000 (04:06 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Sat, 15 Dec 2001 04:06:05 +0000 (04:06 +0000)
* c-parse.in (typename): Do not split attributes.
        Remove unsupported attributes warning.

        * c-decl.c (groktypename): Apply attributes.

From-SVN: r48032

gcc/ChangeLog
gcc/c-decl.c
gcc/c-parse.in

index 642395bc6ce5e69f2d69f49d9d1fed5e71c75d30..56e17a4a2f771e735eb6b2f7feff30b83af2b3d1 100644 (file)
@@ -1,3 +1,10 @@
+2001-12-14  Aldy Hernandez  <aldyh@redhat.com>
+
+       * c-parse.in (typename): Do not split attributes.
+        Remove unsupported attributes warning.
+
+        * c-decl.c (groktypename): Apply attributes.
+
 2001-12-14  Richard Henderson  <rth@redhat.com>
 
        * config/ia64/ia64.c (spill_restore_mem): Mark iterator 
index cfcb10119636e0e34bac8af7f479f06aba6e45f4..011624e95e869d28adb61f909e7812fcdd5dcadc 100644 (file)
@@ -3359,11 +3359,19 @@ tree
 groktypename (typename)
      tree typename;
 {
+  tree specs, attrs;
+
   if (TREE_CODE (typename) != TREE_LIST)
     return typename;
-  return grokdeclarator (TREE_VALUE (typename),
-                        TREE_PURPOSE (typename),
-                        TYPENAME, 0);
+
+  split_specs_attrs (TREE_PURPOSE (typename), &specs, &attrs);
+
+  typename = grokdeclarator (TREE_VALUE (typename), specs, TYPENAME, 0);
+
+  /* Apply attributes.  */
+  decl_attributes (&typename, attrs, 0);
+
+  return typename;
 }
 
 /* Return a PARM_DECL node for a given pair of specs and declarator.  */
index 4967a0939b244d4d567031ca6380bd5a8ac8eddc..5132b3f1d6bca77cbcb4ded0a5a11a347820c804 100644 (file)
@@ -669,6 +669,7 @@ primary:
                { $$ = build_function_call ($1, $3); }
        | VA_ARG '(' expr_no_commas ',' typename ')'
                { $$ = build_va_arg ($3, groktypename ($5)); }
+
       | CHOOSE_EXPR '(' expr_no_commas ',' expr_no_commas ',' expr_no_commas ')'
                {
                   tree c;
@@ -1906,13 +1907,8 @@ enumerator:
 
 typename:
          declspecs_nosc
-               { tree specs, attrs;
-                 pending_xref_error ();
-                 split_specs_attrs ($1, &specs, &attrs);
-                 /* We don't yet support attributes here.  */
-                 if (attrs != NULL_TREE)
-                   warning ("attributes on type name ignored");
-                 $<ttype>$ = specs; }
+               { pending_xref_error ();
+                 $<ttype>$ = $1; }
          absdcl
                { $$ = build_tree_list ($<ttype>2, $3); }
        ;