Initialising a reference member with itself legal?
<p>This was a bug I found in a server application using Valgrind.</p>

<pre><code>struct Foo
{
    Foo(const std::string&amp; a)
        : a_(a_)
    {
    }
    const std::string&amp; a_;
};
</code></pre>

<p>with gcc -Wall you don't get a warning.
Why is this legal code?</p>
