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
This commit is contained in:
parent
f857cb427e
commit
85b22f7857
@ -1,3 +1,10 @@
|
||||
2003-09-18 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
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.
|
||||
|
||||
2003-09-18 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* lex.c (init_operators): Remove operator_name_info for FFS_EXPR.
|
||||
|
@ -120,7 +120,6 @@ bool
|
||||
maybe_clone_body (tree fn)
|
||||
{
|
||||
tree clone;
|
||||
bool first = true;
|
||||
|
||||
/* We only clone constructors and destructors. */
|
||||
if (!DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (fn)
|
||||
@ -139,7 +138,7 @@ maybe_clone_body (tree fn)
|
||||
list. */
|
||||
for (clone = TREE_CHAIN (fn);
|
||||
clone && DECL_CLONED_FUNCTION_P (clone);
|
||||
clone = TREE_CHAIN (clone), first = false)
|
||||
clone = TREE_CHAIN (clone))
|
||||
{
|
||||
tree parm;
|
||||
tree clone_parm;
|
||||
@ -175,13 +174,8 @@ maybe_clone_body (tree fn)
|
||||
clone_parm = TREE_CHAIN (clone_parm);
|
||||
for (; parm;
|
||||
parm = TREE_CHAIN (parm), clone_parm = TREE_CHAIN (clone_parm))
|
||||
{
|
||||
/* Update this parameter. */
|
||||
update_cloned_parm (parm, clone_parm);
|
||||
/* We should only give unused information for one clone. */
|
||||
if (!first)
|
||||
TREE_USED (clone_parm) = 1;
|
||||
}
|
||||
/* Update this parameter. */
|
||||
update_cloned_parm (parm, clone_parm);
|
||||
|
||||
/* Start processing the function. */
|
||||
push_to_top_level ();
|
||||
|
@ -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. */
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-09-18 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
PR c++/9848
|
||||
* g++.dg/warn/Wunused-4.C: New test.
|
||||
|
||||
2003-09-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||||
|
||||
PR c++/12316
|
||||
|
30
gcc/testsuite/g++.dg/warn/Wunused-4.C
Normal file
30
gcc/testsuite/g++.dg/warn/Wunused-4.C
Normal file
@ -0,0 +1,30 @@
|
||||
// { dg-do compile }
|
||||
// { dg-options "-Wunused-parameter" }
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
// Contributed by Nathan Sidwell 15 Sep 2003 <nathan@codesourcery.com>
|
||||
// Origin: yotamm@mellanox.co.il
|
||||
|
||||
|
||||
// PR c++/9848. Missing warning
|
||||
|
||||
struct C1 {
|
||||
// Only use in-charge ctor
|
||||
C1(int bi) {} // { dg-warning "unused parameter" "" }
|
||||
};
|
||||
struct C2 {
|
||||
// Only use base ctor
|
||||
C2(int bi) {} // { dg-warning "unused parameter" "" }
|
||||
};
|
||||
|
||||
struct D : C2
|
||||
{
|
||||
D (int) : C2 (1) {}
|
||||
};
|
||||
|
||||
void show_compile_warning ()
|
||||
{
|
||||
C1 c1 (1);
|
||||
|
||||
D d (1);
|
||||
}
|
Loading…
Reference in New Issue
Block a user