Q:

C++ warning to detect initialisation from self of reference fields

I had a bug caused by a bad copy constructor which initialised its field from itself:
Foo(const Foo& rhs)
  : bar(bar)      // error
{}

Obviously this should have been:
Foo(const Foo& rhs)
  : bar(rhs.bar)
{}

Is there a compiler diagnostic that would have detected this?  Would this code ever potentially make sense? 
-Winit-self doesn't seem to catch this. 
EDIT
Thanks to ForEveR's code example that showed the warning is provided by GCC 4.9.2, I dug a little deeper to determine why I wasn't seeing one. 
It turns out that it depends upon the type of the field being copied. 
class A
{
public:
   A(const A&) : a(a), b(b), c(c) {}
private:
   int a;
   int* b;
   int& c;
};

This code only provides a warning about a (copy by value)  and b (by pointer), but not for c (by reference). 
With this now known, is it still reasonable to expect GCC to identify initialisation of references from self as an issue? 
Clang does identify all three of these as warnings, offering for b:

reference 'b' is not yet bound to a value when used here

EDIT I opened an issue in GCC's bug tracker for this:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64667

A:

In gcc you can use flag 
Winit-self (at least on gcc v 4.8.2 flag catch this situation), or just Wall. 
In clang it's enabled by default, via flag Wuninitialized. 
Tried on gcc 4.9.2 here.  There is warning.