Re: Apparent deeply-nested missing error bug with gcc 7.3

2018-06-21 Thread Soul Studios
UPDATE: My bad. The original compiler feature detection on the test suite was broken/not matching the correct libstdc++ versions. Hence the emplace_back/emplace_front tests were not running. Told you so :-P However, it does surprise me that GCC doesn't check this code. It's a dependent expr

Re: Apparent deeply-nested missing error bug with gcc 7.3

2018-06-19 Thread Jason Merrill
On Tue, Jun 19, 2018 at 6:04 AM, Jonathan Wakely wrote: > On Tue, 19 Jun 2018 at 01:30, Soul Studios wrote: >> >> > >> > It's never called. >> > >> > I added a call to abort() to that function, and the tests all pass. So >> > the function is never used, so GCC never compiles it and doesn't >> > no

Re: Apparent deeply-nested missing error bug with gcc 7.3

2018-06-19 Thread Jonathan Wakely
On Tue, 19 Jun 2018 at 01:30, Soul Studios wrote: > > > > > It's never called. > > > > I added a call to abort() to that function, and the tests all pass. So > > the function is never used, so GCC never compiles it and doesn't > > notice that the return type is invalid. That's allowed by the > > st

Re: Apparent deeply-nested missing error bug with gcc 7.3

2018-06-18 Thread Soul Studios
It's never called. I added a call to abort() to that function, and the tests all pass. So the function is never used, so GCC never compiles it and doesn't notice that the return type is invalid. That's allowed by the standard. The compiler is not required to diagnose ill-formed code in uninstant

Re: Apparent deeply-nested missing error bug with gcc 7.3

2018-06-18 Thread Soul Studios
It's never called. I added a call to abort() to that function, and the tests all pass. So the function is never used, so GCC never compiles it and doesn't notice that the return type is invalid. That's allowed by the standard. The compiler is not required to diagnose ill-formed code in uninstant

Re: Apparent deeply-nested missing error bug with gcc 7.3

2018-06-18 Thread Jonathan Wakely
On Mon, 18 Jun 2018 at 12:09, Jonathan Wakely wrote: > > This is not the right place for bug reports. Please use the gcc-help > list or Bugzilla. > > The most likely scenario is that GCC is performing an implicit > conversion from pointer to some class type (like an iterator) and then > converting

Re: Apparent deeply-nested missing error bug with gcc 7.3

2018-06-18 Thread Jonathan Wakely
This is not the right place for bug reports. Please use the gcc-help list or Bugzilla. The most likely scenario is that GCC is performing an implicit conversion from pointer to some class type (like an iterator) and then converting that to a reference. Or the function template is not being called.

Apparent deeply-nested missing error bug with gcc 7.3

2018-06-17 Thread Soul Studios
In the following case GCC correctly throws an error since simple_return_value is returning a pointer, not a reference: "#include int & simple_return_value(int &temp) { return &temp; } int main() { int temp = 42; return simple_return_value(temp); }" However in deepl