[Bug c++/65152] Several friend function definitions break lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65152 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Target Milestone|--- |6.0 Resolution|--- |FIXED --- Comment #5 from Andrew Pinski --- Fixed in GCC 6+.
[Bug c++/65152] Several friend function definitions break lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65152 --- Comment #4 from Jonathan Wakely --- Yes, fixed by r227044
[Bug c++/65152] Several friend function definitions break lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65152 --- Comment #3 from Roger Orr --- Note that this has been fixed in gcc-trunk (tested 22-Aug-2015)
[Bug c++/65152] Several friend function definitions break lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65152 --- Comment #2 from bugger_gcc at interia dot pl --- This is not what is specified, because C++11 7.3.1.2/3 states that such friend functions can't be found by name lookup unless it's ADL. Note that the friend 'test' incorrectly hides the global 'test' only if there are at least 2 friends with that name defined. With only one friend 'test' the code is compiled correctly. Also, Clang and ICC compile the code with the expected result.
[Bug c++/65152] Several friend function definitions break lookup
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65152 --- Comment #1 from Richard Biener --- So it sounds like the friend declaration injects 'test' into N and thus 'test' is found but overload resolution fails. Whether that injection is correct or not I don't know. But given you can even define the function there it is probably what is specified (C++11 11.3/6). So I think this bug is invalud.