https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86942
Bug ID: 86942 Summary: A trailing-return-type is allowed when the return type is not 'auto' for using declarations Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: blitzrakete at gmail dot com Target Milestone: --- void test() -> void; // fail => ok using function = void() -> int; // allowed?!? int f(); int main() { function *Boo = f; // not ok; trailing return type is ignored } The above code fails to compile on the latest gcc trunk. It is invalid as a trailing-return-type can only appear if the return type of the function is 'auto'. No arguments to g++ necessary. Online demo: https://godbolt.org/g/XtSw6T