decl.c (grokfndecl): Always call cplus_decl_attributes.

* decl.c (grokfndecl): Always call cplus_decl_attributes.
	* decl2.c (grokfield): Pass attrlist to grokdeclarator.

From-SVN: r26558
This commit is contained in:
Jason Merrill 1999-04-20 01:20:07 +00:00 committed by Jason Merrill
parent aa9b7b48b6
commit 419c621259
3 changed files with 15 additions and 8 deletions

View File

@ -1,3 +1,8 @@
1999-04-20 Jason Merrill <jason@yorick.cygnus.com>
* decl.c (grokfndecl): Always call cplus_decl_attributes.
* decl2.c (grokfield): Pass attrlist to grokdeclarator.
1999-04-19 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (finish_static_data_member_decl): New function.

View File

@ -8701,6 +8701,10 @@ grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
tentative. error_mark_node is replaced later with the BLOCK. */
DECL_INITIAL (decl) = error_mark_node;
if (attrlist)
cplus_decl_attributes (decl, TREE_PURPOSE (attrlist),
TREE_VALUE (attrlist));
/* Caller will do the rest of this. */
if (check < 0)
return decl;
@ -8793,9 +8797,6 @@ grokfndecl (ctype, type, declarator, orig_declarator, virtualp, flags, quals,
if (ctype == NULL_TREE || check)
return decl;
if (attrlist)
cplus_decl_attributes (decl, TREE_PURPOSE (attrlist),
TREE_VALUE (attrlist));
make_decl_rtl (decl, NULL_PTR, 1);
if (virtualp)
@ -10759,16 +10760,14 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
attrlist = build_decl_list (NULL_TREE, inner_attrs);
}
/* Now TYPE has the actual type. */
if (explicitp == 1)
{
error ("only constructors can be declared `explicit'");
explicitp = 0;
}
/* Now TYPE has the actual type. */
/* If this is declaring a typedef name, return a TYPE_DECL. */
if (RIDBIT_SETP (RID_MUTABLE, specbits))
{
if (type_quals & TYPE_QUAL_CONST)
@ -10795,8 +10794,11 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
declarator = dname;
}
else
/* Unexpected declarator format. */
my_friendly_abort (990210);
/* If this is declaring a typedef name, return a TYPE_DECL. */
if (RIDBIT_SETP (RID_TYPEDEF, specbits) && decl_context != TYPENAME)
{
tree decl;

View File

@ -1570,7 +1570,7 @@ grokfield (declarator, declspecs, init, asmspec_tree, attrlist)
&& TREE_CHAIN (init) == NULL_TREE)
init = NULL_TREE;
value = grokdeclarator (declarator, declspecs, FIELD, init != 0, NULL_TREE);
value = grokdeclarator (declarator, declspecs, FIELD, init != 0, attrlist);
if (! value || value == error_mark_node)
/* friend or constructor went bad. */
return value;