[LLVMbugs] [Bug 10983] New: -Wunused-parameter should not warn about virtual method declarations with bodies
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Sep 21 21:29:50 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10983
Summary: -Wunused-parameter should not warn about virtual
method declarations with bodies
Product: clang
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: C++
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: miles at gnu.org
CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com
In the following code:
struct X { virtual void f (int a) { } };
One gets a warning from -Wunused-parameter, "unused parameter 'a'".
While this is understandable, I think it's undesirable -- clearly the parameter
'a' will often be used by overrides of X::f, and the parameter name 'a' serves
a valuable documentation purpose here, even if it's not strictly required.
The basic problem of course, is that in this case, f is both a virtual method
declaration which covers overriding methods as well, and a definition of X's
definition of it.
One can avoid this by defining X::f outside the class definition, but for
trivial definitions like the above, this would seem like annoying make-work if
done only to shut up -Wunused-parameter.
My current method of avoiding the warning is to comment out the parameter name:
virtual void f (int /* a */) { }
but this again seems like an annoying wart, rather than natural code -- it's
both less readable (especially when the parameter has a funny type like a
function pointer) and yields a slightly confusing inconsistency ("why do you
comment-out some method parameter names but not others?!" "oh it's just to shut
up -Wunused-parameter... :(").
Anyway, the current behavior seems wrong to me; I think -Wunused-parameter
should stay silent for method virtual definitions inside the class definition.
[If this were a very rare scenario, I suppose I wouldn't care about the need to
work around it, but it seems to happen all the time for me...]
Thanks,
-Miles
p.s. gcc does the same thing; I just posted an identical bug to gcc's bugzilla
... :]
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list