[Bug c++/47783] New: Warning 'set but not used' [-Wunused-but-set-parameter] incorrectly issued for update through reference wrapper
dev.lists at jessamine dot co.uk
gcc-bugzilla@gcc.gnu.org
Thu Feb 17 14:32:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47783
Summary: Warning 'set but not used'
[-Wunused-but-set-parameter] incorrectly issued for
update through reference wrapper
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: dev.lists@jessamine.co.uk
Compiling the following program with warning options -W -Wall yields
<stdin>: In function ‘void f(ref_wrapper)’:
<stdin>:6:6: warning: parameter ‘ref’ set but not used
[-Wunused-but-set-parameter]
If the reference-to-int is replaced with a pointer-to-int and dereference and
address-of operators are used in the appropriate places the warning does not
occur.
In all cases and at all optimization levels the resulting program returns 7 as
expected.
struct ref_wrapper
{
int& i;
};
void f( ref_wrapper ref )
{
ref.i = 7;
}
int main()
{
int x = 1;
ref_wrapper xref = {x};
f(xref);
return x;
}
More information about the Gcc-bugs
mailing list