toplev.h: Add comment about the first parameter for warning().
* toplev.h: Add comment about the first parameter for warning(). * errors.h: Likewise. * c.opt (Wpragmas): New. * doc/invoke.texi: Document it. * function.c (do_warn_unused_parameter): Add warning control to warning call. * c-decl.c (warn_if_shadowing): Likewise. * c-lex.c (cb_def_pragma): Likewise. * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise. (pop_alignment): Likewise. (handle_pragma_pack): Likewise. (apply_pragma_weak): Likewise. (handle_pragma_weak): Likewise. (handle_pragma_redefine_extname): Likewise. (add_to_renaming_pragma_list): Likewise. (handle_pragma_extern_prefix): Likewise. (maybe_apply_renaming_pragma): Likewise. (handle_pragma_visibility): Likewise. * config/c4x/c4x-c.c (BAD): Likewise. (c4x_parse_pragma): Likewise. * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise. * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise. (rs6000_pragma_longcall): Likewise. * config/v850/v850-c.c (pop_data_area): Likewise. (ghs_pragma_section): Likewise. (ghs_pragma_section): Likewise. (ghs_pragma_interrupt): Likewise. (ghs_pragma_starttda): Likewise. (ghs_pragma_startsda): Likewise. (ghs_pragma_startzda): Likewise. (ghs_pragma_endtda): Likewise. (ghs_pragma_endsda): Likewise. (ghs_pragma_endzda): Likewise. From-SVN: r102168
This commit is contained in:
parent
24d36d28c4
commit
b9b8dde302
@ -1,3 +1,42 @@
|
||||
2005-07-15 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* toplev.h: Add comment about the first parameter for warning().
|
||||
* errors.h: Likewise.
|
||||
|
||||
* c.opt (Wpragmas): New.
|
||||
* doc/invoke.texi: Document it.
|
||||
|
||||
* function.c (do_warn_unused_parameter): Add warning control to
|
||||
warning call.
|
||||
* c-decl.c (warn_if_shadowing): Likewise.
|
||||
* c-lex.c (cb_def_pragma): Likewise.
|
||||
* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
|
||||
(pop_alignment): Likewise.
|
||||
(handle_pragma_pack): Likewise.
|
||||
(apply_pragma_weak): Likewise.
|
||||
(handle_pragma_weak): Likewise.
|
||||
(handle_pragma_redefine_extname): Likewise.
|
||||
(add_to_renaming_pragma_list): Likewise.
|
||||
(handle_pragma_extern_prefix): Likewise.
|
||||
(maybe_apply_renaming_pragma): Likewise.
|
||||
(handle_pragma_visibility): Likewise.
|
||||
|
||||
* config/c4x/c4x-c.c (BAD): Likewise.
|
||||
(c4x_parse_pragma): Likewise.
|
||||
* config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
|
||||
* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
|
||||
(rs6000_pragma_longcall): Likewise.
|
||||
* config/v850/v850-c.c (pop_data_area): Likewise.
|
||||
(ghs_pragma_section): Likewise.
|
||||
(ghs_pragma_section): Likewise.
|
||||
(ghs_pragma_interrupt): Likewise.
|
||||
(ghs_pragma_starttda): Likewise.
|
||||
(ghs_pragma_startsda): Likewise.
|
||||
(ghs_pragma_startzda): Likewise.
|
||||
(ghs_pragma_endtda): Likewise.
|
||||
(ghs_pragma_endsda): Likewise.
|
||||
(ghs_pragma_endzda): Likewise.
|
||||
|
||||
2005-07-19 Danny Berlin <dberlin@dberlin.org>
|
||||
Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
|
19
gcc/c-decl.c
19
gcc/c-decl.c
@ -1908,27 +1908,28 @@ warn_if_shadowing (tree new_decl)
|
||||
|
||||
if (old_decl == error_mark_node)
|
||||
{
|
||||
warning (0, "declaration of %q+D shadows previous non-variable",
|
||||
new_decl);
|
||||
warning (OPT_Wshadow, "declaration of %q+D shadows previous "
|
||||
"non-variable", new_decl);
|
||||
break;
|
||||
}
|
||||
else if (TREE_CODE (old_decl) == PARM_DECL)
|
||||
warning (0, "declaration of %q+D shadows a parameter", new_decl);
|
||||
else if (DECL_FILE_SCOPE_P (old_decl))
|
||||
warning (0, "declaration of %q+D shadows a global declaration",
|
||||
warning (OPT_Wshadow, "declaration of %q+D shadows a parameter",
|
||||
new_decl);
|
||||
else if (DECL_FILE_SCOPE_P (old_decl))
|
||||
warning (OPT_Wshadow, "declaration of %q+D shadows a global "
|
||||
"declaration", new_decl);
|
||||
else if (TREE_CODE (old_decl) == FUNCTION_DECL
|
||||
&& DECL_BUILT_IN (old_decl))
|
||||
{
|
||||
warning (0, "declaration of %q+D shadows a built-in function",
|
||||
new_decl);
|
||||
warning (OPT_Wshadow, "declaration of %q+D shadows "
|
||||
"a built-in function", new_decl);
|
||||
break;
|
||||
}
|
||||
else
|
||||
warning (0, "declaration of %q+D shadows a previous local",
|
||||
warning (OPT_Wshadow, "declaration of %q+D shadows a previous local",
|
||||
new_decl);
|
||||
|
||||
warning (0, "%Jshadowed declaration is here", old_decl);
|
||||
warning (OPT_Wshadow, "%Jshadowed declaration is here", old_decl);
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -299,7 +299,8 @@ cb_def_pragma (cpp_reader *pfile, source_location loc)
|
||||
name = cpp_token_as_text (pfile, s);
|
||||
}
|
||||
|
||||
warning (0, "%Hignoring #pragma %s %s", &fe_loc, space, name);
|
||||
warning (OPT_Wunknown_pragmas, "%Hignoring #pragma %s %s",
|
||||
&fe_loc, space, name);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,9 +37,10 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
#include "vec.h"
|
||||
#include "target.h"
|
||||
|
||||
#define GCC_BAD(gmsgid) do { warning (0, gmsgid); return; } while (0)
|
||||
#define GCC_BAD(gmsgid) \
|
||||
do { warning (OPT_Wpragmas, gmsgid); return; } while (0)
|
||||
#define GCC_BAD2(gmsgid, arg) \
|
||||
do { warning (0, gmsgid, arg); return; } while (0)
|
||||
do { warning (OPT_Wpragmas, gmsgid, arg); return; } while (0)
|
||||
|
||||
typedef struct align_stack GTY(())
|
||||
{
|
||||
@ -110,7 +111,7 @@ pop_alignment (tree id)
|
||||
break;
|
||||
}
|
||||
if (entry == NULL)
|
||||
warning (0, "\
|
||||
warning (OPT_Wpragmas, "\
|
||||
#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s)"
|
||||
, IDENTIFIER_POINTER (id), IDENTIFIER_POINTER (id));
|
||||
}
|
||||
@ -203,7 +204,7 @@ handle_pragma_pack (cpp_reader * ARG_UNUSED (dummy))
|
||||
GCC_BAD ("malformed %<#pragma pack%> - ignored");
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of %<#pragma pack%>");
|
||||
warning (OPT_Wpragmas, "junk at end of %<#pragma pack%>");
|
||||
|
||||
if (flag_pack_struct)
|
||||
GCC_BAD ("#pragma pack has no effect with -fpack-struct - ignored");
|
||||
@ -259,8 +260,8 @@ apply_pragma_weak (tree decl, tree value)
|
||||
if (SUPPORTS_WEAK && DECL_EXTERNAL (decl) && TREE_USED (decl)
|
||||
&& !DECL_WEAK (decl) /* Don't complain about a redundant #pragma. */
|
||||
&& TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
|
||||
warning (0, "applying #pragma weak %q+D after first use results "
|
||||
"in unspecified behavior", decl);
|
||||
warning (OPT_Wpragmas, "applying #pragma weak %q+D after first use "
|
||||
"results in unspecified behavior", decl);
|
||||
|
||||
declare_weak (decl);
|
||||
}
|
||||
@ -342,7 +343,7 @@ handle_pragma_weak (cpp_reader * ARG_UNUSED (dummy))
|
||||
t = c_lex (&x);
|
||||
}
|
||||
if (t != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma weak");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma weak");
|
||||
|
||||
decl = identifier_global_value (name);
|
||||
if (decl && DECL_P (decl))
|
||||
@ -415,7 +416,7 @@ handle_pragma_redefine_extname (cpp_reader * ARG_UNUSED (dummy))
|
||||
GCC_BAD ("malformed #pragma redefine_extname, ignored");
|
||||
t = c_lex (&x);
|
||||
if (t != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma redefine_extname");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma redefine_extname");
|
||||
|
||||
if (!flag_mudflap && !targetm.handle_pragma_redefine_extname)
|
||||
{
|
||||
@ -438,8 +439,8 @@ handle_pragma_redefine_extname (cpp_reader * ARG_UNUSED (dummy))
|
||||
name = targetm.strip_name_encoding (name);
|
||||
|
||||
if (strcmp (name, IDENTIFIER_POINTER (newname)))
|
||||
warning (0, "#pragma redefine_extname ignored due to conflict with "
|
||||
"previous rename");
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with previous rename");
|
||||
}
|
||||
else
|
||||
change_decl_assembler_name (decl, newname);
|
||||
@ -461,8 +462,8 @@ add_to_renaming_pragma_list (tree oldname, tree newname)
|
||||
if (previous)
|
||||
{
|
||||
if (TREE_VALUE (previous) != newname)
|
||||
warning (0, "#pragma redefine_extname ignored due to conflict with "
|
||||
"previous #pragma redefine_extname");
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with previous #pragma redefine_extname");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -483,7 +484,7 @@ handle_pragma_extern_prefix (cpp_reader * ARG_UNUSED (dummy))
|
||||
GCC_BAD ("malformed #pragma extern_prefix, ignored");
|
||||
t = c_lex (&x);
|
||||
if (t != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma extern_prefix");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma extern_prefix");
|
||||
|
||||
if (targetm.handle_pragma_extern_prefix)
|
||||
/* Note that the length includes the null terminator. */
|
||||
@ -516,7 +517,7 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
|
||||
oldname = targetm.strip_name_encoding (oldname);
|
||||
|
||||
if (asmname && strcmp (TREE_STRING_POINTER (asmname), oldname))
|
||||
warning (0, "asm declaration ignored due to "
|
||||
warning (OPT_Wpragmas, "asm declaration ignored due to "
|
||||
"conflict with previous rename");
|
||||
|
||||
/* Take any pending redefine_extname off the list. */
|
||||
@ -525,7 +526,7 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
|
||||
{
|
||||
/* Only warn if there is a conflict. */
|
||||
if (strcmp (IDENTIFIER_POINTER (TREE_VALUE (t)), oldname))
|
||||
warning (0, "#pragma redefine_extname ignored due to "
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with previous rename");
|
||||
|
||||
*p = TREE_CHAIN (t);
|
||||
@ -547,7 +548,7 @@ maybe_apply_renaming_pragma (tree decl, tree asmname)
|
||||
{
|
||||
if (strcmp (TREE_STRING_POINTER (asmname),
|
||||
IDENTIFIER_POINTER (newname)) != 0)
|
||||
warning (0, "#pragma redefine_extname ignored due to "
|
||||
warning (OPT_Wpragmas, "#pragma redefine_extname ignored due to "
|
||||
"conflict with __asm__ declaration");
|
||||
return asmname;
|
||||
}
|
||||
@ -661,7 +662,7 @@ handle_pragma_visibility (cpp_reader *dummy ATTRIBUTE_UNUSED)
|
||||
}
|
||||
}
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of %<#pragma GCC visibility%>");
|
||||
warning (OPT_Wpragmas, "junk at end of %<#pragma GCC visibility%>");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -331,6 +331,10 @@ Wpointer-to-int-cast
|
||||
C ObjC Var(warn_pointer_to_int_cast) Init(1)
|
||||
Warn when a pointer is cast to an integer of a different size
|
||||
|
||||
Wpragmas
|
||||
C ObjC C++ ObjC++ Var(warn_pragmas) Init(1)
|
||||
Warn about misuses of pragmas
|
||||
|
||||
Wprotocol
|
||||
ObjC ObjC++ Var(warn_protocol) Init(1)
|
||||
Warn if inherited methods are unimplemented
|
||||
|
@ -57,7 +57,8 @@ static int c4x_parse_pragma (const char *, tree *, tree *);
|
||||
the STRING_CST node of the string. If SECT is null, then this
|
||||
pragma doesn't take a section string. Returns 0 for a good pragma,
|
||||
-1 for a malformed pragma. */
|
||||
#define BAD(gmsgid, arg) do { warning (0, gmsgid, arg); return -1; } while (0)
|
||||
#define BAD(gmsgid, arg) \
|
||||
do { warning (OPT_Wpragmas, gmsgid, arg); return -1; } while (0)
|
||||
|
||||
static int
|
||||
c4x_parse_pragma (name, func, sect)
|
||||
@ -86,7 +87,7 @@ c4x_parse_pragma (name, func, sect)
|
||||
BAD ("missing ')' for '#pragma %s' - ignored", name);
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of '#pragma %s'", name);
|
||||
warning (OPT_Wpragmas, "junk at end of '#pragma %s'", name);
|
||||
|
||||
*func = f;
|
||||
return 0;
|
||||
|
@ -49,7 +49,7 @@ ia64_hpux_handle_builtin_pragma (cpp_reader *pfile ATTRIBUTE_UNUSED)
|
||||
type = c_lex (&x);
|
||||
}
|
||||
if (type != CPP_EOF)
|
||||
warning (0, "malformed #pragma builtin");
|
||||
warning (OPT_Wpragmas, "malformed #pragma builtin");
|
||||
}
|
||||
|
||||
/* List of standard math functions which do not set matherr by default
|
||||
|
@ -50,10 +50,10 @@ static tree altivec_resolve_overloaded_builtin (tree, tree);
|
||||
whether or not new function declarations receive a longcall
|
||||
attribute by default. */
|
||||
|
||||
#define SYNTAX_ERROR(gmsgid) do { \
|
||||
warning (0, gmsgid); \
|
||||
warning (0, "ignoring malformed #pragma longcall"); \
|
||||
return; \
|
||||
#define SYNTAX_ERROR(gmsgid) do { \
|
||||
warning (OPT_Wpragmas, gmsgid); \
|
||||
warning (OPT_Wpragmas, "ignoring malformed #pragma longcall"); \
|
||||
return; \
|
||||
} while (0)
|
||||
|
||||
void
|
||||
@ -75,7 +75,7 @@ rs6000_pragma_longcall (cpp_reader *pfile ATTRIBUTE_UNUSED)
|
||||
SYNTAX_ERROR ("number must be 0 or 1");
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma longcall");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma longcall");
|
||||
|
||||
rs6000_default_long_calls = (n == integer_one_node);
|
||||
}
|
||||
|
@ -64,9 +64,11 @@ static int
|
||||
pop_data_area (v850_data_area data_area)
|
||||
{
|
||||
if (data_area_stack == NULL)
|
||||
warning (0, "#pragma GHS endXXXX found without previous startXXX");
|
||||
warning (OPT_Wpragmas, "#pragma GHS endXXXX found without "
|
||||
"previous startXXX");
|
||||
else if (data_area != data_area_stack->data_area)
|
||||
warning (0, "#pragma GHS endXXX does not match previous startXXX");
|
||||
warning (OPT_Wpragmas, "#pragma GHS endXXX does not match "
|
||||
"previous startXXX");
|
||||
else
|
||||
{
|
||||
data_area_stack_element * elem;
|
||||
@ -144,7 +146,7 @@ ghs_pragma_section (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
if (type == CPP_COMMA)
|
||||
repeat = 1;
|
||||
else if (type != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs section");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs section");
|
||||
|
||||
if (streq (sect, "data")) kind = GHS_SECTION_KIND_DATA;
|
||||
else if (streq (sect, "text")) kind = GHS_SECTION_KIND_TEXT;
|
||||
@ -176,7 +178,7 @@ ghs_pragma_section (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
return;
|
||||
|
||||
bad:
|
||||
warning (0, "malformed #pragma ghs section");
|
||||
warning (OPT_Wpragmas, "malformed #pragma ghs section");
|
||||
return;
|
||||
|
||||
reset:
|
||||
@ -195,7 +197,7 @@ ghs_pragma_interrupt (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
tree x;
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs interrupt");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs interrupt");
|
||||
|
||||
mark_current_function_as_interrupt ();
|
||||
}
|
||||
@ -206,7 +208,7 @@ ghs_pragma_starttda (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
tree x;
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs starttda");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs starttda");
|
||||
|
||||
push_data_area (DATA_AREA_TDA);
|
||||
}
|
||||
@ -217,7 +219,7 @@ ghs_pragma_startsda (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
tree x;
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs startsda");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs startsda");
|
||||
|
||||
push_data_area (DATA_AREA_SDA);
|
||||
}
|
||||
@ -228,7 +230,7 @@ ghs_pragma_startzda (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
tree x;
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs startzda");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs startzda");
|
||||
|
||||
push_data_area (DATA_AREA_ZDA);
|
||||
}
|
||||
@ -239,7 +241,7 @@ ghs_pragma_endtda (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
tree x;
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs endtda");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs endtda");
|
||||
|
||||
pop_data_area (DATA_AREA_TDA);
|
||||
}
|
||||
@ -250,7 +252,7 @@ ghs_pragma_endsda (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
tree x;
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs endsda");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs endsda");
|
||||
|
||||
pop_data_area (DATA_AREA_SDA);
|
||||
}
|
||||
@ -261,7 +263,7 @@ ghs_pragma_endzda (cpp_reader * pfile ATTRIBUTE_UNUSED)
|
||||
tree x;
|
||||
|
||||
if (c_lex (&x) != CPP_EOF)
|
||||
warning (0, "junk at end of #pragma ghs endzda");
|
||||
warning (OPT_Wpragmas, "junk at end of #pragma ghs endzda");
|
||||
|
||||
pop_data_area (DATA_AREA_ZDA);
|
||||
}
|
||||
|
@ -241,7 +241,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
-Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 @gol
|
||||
-Wswitch -Wswitch-default -Wswitch-enum @gol
|
||||
-Wsystem-headers -Wtrigraphs -Wundef -Wuninitialized @gol
|
||||
-Wunknown-pragmas -Wunreachable-code @gol
|
||||
-Wunknown-pragmas -Wno-pragmas -Wunreachable-code @gol
|
||||
-Wunused -Wunused-function -Wunused-label -Wunused-parameter @gol
|
||||
-Wunused-value -Wunused-variable -Wwrite-strings @gol
|
||||
-Wvariadic-macros}
|
||||
@ -2709,6 +2709,13 @@ GCC@. If this command line option is used, warnings will even be issued
|
||||
for unknown pragmas in system header files. This is not the case if
|
||||
the warnings were only enabled by the @option{-Wall} command line option.
|
||||
|
||||
@item -Wno-pragmas
|
||||
@opindex Wno-pragmas
|
||||
@opindex Wpragmas
|
||||
Do not warn about misuses of pragmas, such as incorrect parameters,
|
||||
invalid syntax, or conflicts between pragmas. See also
|
||||
@samp{-Wunknown-pragmas}.
|
||||
|
||||
@item -Wstrict-aliasing
|
||||
@opindex Wstrict-aliasing
|
||||
This option is only active when @option{-fstrict-aliasing} is active.
|
||||
|
@ -30,6 +30,10 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
#ifndef GCC_ERRORS_H
|
||||
#define GCC_ERRORS_H
|
||||
|
||||
/* The first parameter is for compatibility with the non-generator
|
||||
version of warning(). For those, you'd pass an OPT_W* value from
|
||||
options.h, but in generator programs it has no effect, so it's OK
|
||||
to just pass zero for calls from generator-only files. */
|
||||
extern void warning (int, const char *, ...) ATTRIBUTE_PRINTF_2;
|
||||
extern void error (const char *, ...) ATTRIBUTE_PRINTF_1;
|
||||
extern void fatal (const char *, ...) ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF_1;
|
||||
|
@ -4315,7 +4315,7 @@ do_warn_unused_parameter (tree fn)
|
||||
decl; decl = TREE_CHAIN (decl))
|
||||
if (!TREE_USED (decl) && TREE_CODE (decl) == PARM_DECL
|
||||
&& DECL_NAME (decl) && !DECL_ARTIFICIAL (decl))
|
||||
warning (0, "unused parameter %q+D", decl);
|
||||
warning (OPT_Wunused_parameter, "unused parameter %q+D", decl);
|
||||
}
|
||||
|
||||
static GTY(()) rtx initial_trampoline;
|
||||
|
@ -57,6 +57,7 @@ extern void _fatal_insn (const char *, rtx, const char *, int, const char *)
|
||||
extern void internal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
|
||||
ATTRIBUTE_NORETURN;
|
||||
extern void warning0 (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
|
||||
/* Pass one of the OPT_W* from options.h as the first parameter. */
|
||||
extern void warning (int, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
|
||||
extern void error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
|
||||
extern void fatal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
|
||||
|
Loading…
Reference in New Issue
Block a user