/* Functions dealing with attribute handling, used by most front ends.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
if (spec == NULL)
{
- warning ("`%s' attribute directive ignored",
+ warning (0, "%qs attribute directive ignored",
IDENTIFIER_POINTER (name));
continue;
}
|| (spec->max_length >= 0
&& list_length (args) > spec->max_length))
{
- error ("wrong number of arguments specified for `%s' attribute",
+ error ("wrong number of arguments specified for %qs attribute",
IDENTIFIER_POINTER (name));
continue;
}
}
else
{
- warning ("`%s' attribute does not apply to types",
+ warning (0, "%qs attribute does not apply to types",
IDENTIFIER_POINTER (name));
continue;
}
if (TREE_CODE (*anode) != FUNCTION_TYPE
&& TREE_CODE (*anode) != METHOD_TYPE)
{
- warning ("`%s' attribute only applies to function types",
+ warning (0, "%qs attribute only applies to function types",
IDENTIFIER_POINTER (name));
continue;
}
&& (TREE_CODE (*node) == VAR_DECL
|| TREE_CODE (*node) == PARM_DECL
|| TREE_CODE (*node) == RESULT_DECL))
- {
- /* Force a recalculation of mode and size. */
- DECL_MODE (*node) = VOIDmode;
- DECL_SIZE (*node) = 0;
-
- layout_decl (*node, 0);
- }
+ relayout_decl (*node);
if (!no_add_attrs)
{