https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63181
Bug ID: 63181
Summary: GCC should warn about "obvious" bugs in binding a
reference to temporary
Product: gcc
Version: 4.9.2
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: brooks at gcc dot gnu.org
GCC should warn about "obvious" bugs in binding a reference to temporary.
Small test case:
struct Foo {
Foo(int x): x_(x) { }
int& x_;
};
int main()
{
Foo f(0);
return f.x_;
}
Gcc -Wall is silent.
Clang detects this clearly:
clang++ foo.cc -Wall
foo.cc:2:19: warning: binding reference member 'x_' to stack allocated
parameter 'x' [-Wdangling-field]
Foo(int x): x_(x) { }
^
foo.cc:3:9: note: reference member declared here
int& x_;
^
1 warning generated.