[Bug c++/67910] New: Two autos in a single function confuses the type system
guille at cal dot berkeley.edu
gcc-bugzilla@gcc.gnu.org
Fri Oct 9 16:46:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67910
Bug ID: 67910
Summary: Two autos in a single function confuses the type
system
Product: gcc
Version: 5.2.0
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: guille at cal dot berkeley.edu
Target Milestone: ---
The following code does not compile on 5.2.0:
struct A {};
struct B {};
static auto f(auto b) -> A { return A(); }
int main()
{
A a = f(B());
return 0;
}
whereas the following *does* compile:
struct A {};
struct B {};
static auto f(B b) -> A { return A(); }
int main()
{
__attribute__((unused)) A a = f(B());
return 0;
}
In the first (failing) case, the type system thinks that 'f' returns the same
type as the first auto *argument*, even though the return type is specified to
be 'A'.
More information about the Gcc-bugs
mailing list