mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-11 15:10:12 +08:00
re PR ada/21952 (Annoying "attribute directive ignored" warnings)
2005-11-07 James A. Morrison <phython@gcc.gnu.org> PR treelang/21952 * treetree.c (LANG_HOOKS_ATTRIBUTE_TABLE): Set to treelang_attribute_table. (handle_attribute): New function. (treelang_attribute_table): New attribute table. From-SVN: r106582
This commit is contained in:
parent
96c993a890
commit
7d4a2fb0d4
@ -1,3 +1,11 @@
|
||||
2005-11-07 James A. Morrison <phython@gcc.gnu.org>
|
||||
|
||||
PR treelang/21952
|
||||
* treetree.c (LANG_HOOKS_ATTRIBUTE_TABLE): Set to
|
||||
treelang_attribute_table.
|
||||
(handle_attribute): New function.
|
||||
(treelang_attribute_table): New attribute table.
|
||||
|
||||
2005-09-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
|
||||
|
||||
* parse.y : Changed pointer declaration from "type* var" to "type *var"
|
||||
|
@ -139,8 +139,10 @@ static tree* getstmtlist (void);
|
||||
|
||||
/* Langhooks. */
|
||||
static tree builtin_function (const char *name, tree type, int function_code,
|
||||
enum built_in_class class, const char *library_name,
|
||||
tree attrs);
|
||||
enum built_in_class class,
|
||||
const char *library_name,
|
||||
tree attrs);
|
||||
extern const struct attribute_spec treelang_attribute_table[];
|
||||
static tree getdecls (void);
|
||||
static int global_bindings_p (void);
|
||||
static void insert_block (tree);
|
||||
@ -166,6 +168,8 @@ static void treelang_expand_function (tree fndecl);
|
||||
#define LANG_HOOKS_TYPE_FOR_SIZE tree_lang_type_for_size
|
||||
#undef LANG_HOOKS_PARSE_FILE
|
||||
#define LANG_HOOKS_PARSE_FILE treelang_parse_file
|
||||
#undef LANG_HOOKS_ATTRIBUTE_TABLE
|
||||
#define LANG_HOOKS_ATTRIBUTE_TABLE treelang_attribute_table
|
||||
|
||||
#undef LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION
|
||||
#define LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION treelang_expand_function
|
||||
@ -1194,6 +1198,33 @@ treelang_init_decl_processing (void)
|
||||
pedantic_lvalues = pedantic;
|
||||
}
|
||||
|
||||
static tree
|
||||
handle_attribute (tree *node, tree name, tree ARG_UNUSED (args),
|
||||
int ARG_UNUSED (flags), bool *no_add_attrs)
|
||||
{
|
||||
if (TREE_CODE (*node) == FUNCTION_DECL)
|
||||
{
|
||||
if (strcmp (IDENTIFIER_POINTER (name), "const") == 0)
|
||||
TREE_READONLY (*node) = 1;
|
||||
if (strcmp (IDENTIFIER_POINTER (name), "nothrow") == 0)
|
||||
TREE_NOTHROW (*node) = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
warning (OPT_Wattributes, "%qD attribute ignored", name);
|
||||
*no_add_attrs = true;
|
||||
}
|
||||
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
||||
const struct attribute_spec treelang_attribute_table[] =
|
||||
{
|
||||
{ "const", 0, 0, true, false, false, handle_attribute },
|
||||
{ "nothrow", 0, 0, true, false, false, handle_attribute },
|
||||
{ NULL, 0, 0, false, false, false, NULL },
|
||||
};
|
||||
|
||||
/* Return a definition for a builtin function named NAME and whose data type
|
||||
is TYPE. TYPE should be a function type with argument types.
|
||||
FUNCTION_CODE tells later passes how to compile calls to this function.
|
||||
|
Loading…
Reference in New Issue
Block a user