diff options
| author | Nathan Sidwell <nathan@codesourcery.com> | 2003-09-18 17:07:53 +0000 |
|---|---|---|
| committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2003-09-18 17:07:53 +0000 |
| commit | 85b22f7857a745d8ec12d88d61b770a598208ecf (patch) | |
| tree | e282a8b31bbf685e2f19352bd0b60a68eddc7257 /gcc/cp/semantics.c | |
| parent | f857cb427e56de666cafa31769bb6208358c374c (diff) | |
| download | gcc-85b22f7857a745d8ec12d88d61b770a598208ecf.zip gcc-85b22f7857a745d8ec12d88d61b770a598208ecf.tar.gz gcc-85b22f7857a745d8ec12d88d61b770a598208ecf.tar.bz2 | |
re PR c++/9848 (missing 'unused parameter' warning.)
cp:
PR c++/9848
* optimize.c (maybe_clone_body): Don't set MARK_USED on parameters
here.
* semantics.c (expand_body): Set it here on the remaining clones.
testsuite:
PR c++/9848
* g++.dg/warn/Wunused-4.C: New test.
From-SVN: r71528
Diffstat (limited to 'gcc/cp/semantics.c')
| -rw-r--r-- | gcc/cp/semantics.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 37dca0a..ef42579 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2887,6 +2887,26 @@ expand_body (tree fn) static duration objects. */ if (DECL_STATIC_DESTRUCTOR (fn)) static_dtors = tree_cons (NULL_TREE, fn, static_dtors); + + if (DECL_CLONED_FUNCTION_P (fn)) + { + /* If this is a clone, go through the other clones now and mark + their parameters used. We have to do that here, as we don't + know whether any particular clone will be expanded, and + therefore cannot pick one arbitrarily. */ + tree probe; + + for (probe = TREE_CHAIN (DECL_CLONED_FUNCTION (fn)); + probe && DECL_CLONED_FUNCTION_P (probe); + probe = TREE_CHAIN (probe)) + { + tree parms; + + for (parms = DECL_ARGUMENTS (probe); + parms; parms = TREE_CHAIN (parms)) + TREE_USED (parms) = 1; + } + } } /* Generate RTL for FN. */ |
