https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67017

--- Comment #3 from Anders Granlund <anders.granlund.0 at gmail dot com> ---
(In reply to Jonathan Wakely from comment #1)
> EDG and Clang also accept this in C++14 mode (and like GCC, reject it in
> C++11 mode).

(In reply to Anders Granlund from comment #2)
> (In reply to Jonathan Wakely from comment #1)
> > EDG and Clang also accept this in C++14 mode (and like GCC, reject it in
> > C++11 mode).
> 
> I think that is because type deduction for return types of functions was
> introduced in c++14.
> 
> The following program is well-formed in c++14, but not in c++11:
> 
> auto f();
> int main() {}

(In reply to Jonathan Wakely from comment #1)
> EDG and Clang also accept this in C++14 mode (and like GCC, reject it in
> C++11 mode).

It is interesting that the compilers seem to agree, looks like they all have
this bug. 

I noticed an interesting thing however. Consider this program:

auto i = 0, f();
auto f() { return false; }
int main() {}

Clang accepts it, but GCC rejects it (I didn't try EDG).

Reply via email to