diff options
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/gcc/function.c b/gcc/function.c index 69f9b8f..b1f888f 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -6919,6 +6919,19 @@ use_return_register (void) diddle_return_value (do_use_return_reg, NULL); } +/* Possibly warn about unused parameters. */ +void +do_warn_unused_parameter (tree fn) +{ + tree decl; + + for (decl = DECL_ARGUMENTS (fn); + decl; decl = TREE_CHAIN (decl)) + if (!TREE_USED (decl) && TREE_CODE (decl) == PARM_DECL + && DECL_NAME (decl) && !DECL_ARTIFICIAL (decl)) + warning ("%Junused parameter '%D'", decl, decl); +} + static GTY(()) rtx initial_trampoline; /* Generate RTL for the end of the current function. */ @@ -7007,17 +7020,12 @@ expand_function_end (void) } } - /* Possibly warn about unused parameters. */ - if (warn_unused_parameter) - { - tree decl; - - for (decl = DECL_ARGUMENTS (current_function_decl); - decl; decl = TREE_CHAIN (decl)) - if (! TREE_USED (decl) && TREE_CODE (decl) == PARM_DECL - && DECL_NAME (decl) && ! DECL_ARTIFICIAL (decl)) - warning ("%Junused parameter '%D'", decl, decl); - } + /* Possibly warn about unused parameters. + When frontend does unit-at-a-time, the warning is already + issued at finalization time. */ + if (warn_unused_parameter + && !lang_hooks.callgraph.expand_function) + do_warn_unused_parameter (current_function_decl); /* Delete handlers for nonlocal gotos if nothing uses them. */ if (nonlocal_goto_handler_slots != 0 |