* c-parse.in (typename): Do not split attributes.
Remove unsupported attributes warning.
* c-decl.c (groktypename): Apply attributes.
From-SVN: r48032
+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
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. */
{ $$ = 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;
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); }
;