Inicializando um membro de referência legal?

Este foi um erro que encontrei em um aplicativo de servidor usando o Valgrind.

struct Foo
{
    Foo(const std::string& a)
        : a_(a_)
    {
    }
    const std::string& a_;
};

com gcc -Wall você não recebe um aviso. Por que esse código legal?