https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64248
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org --- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> --- It's not clear to me that this is a bug. As far as I can tell from the standard, __func__ is an identifier, not a keyword, so the declaration of b declares a function taking an A parameter named __FUNCTION__. But there seems to be no good reason to fight against existing practice on this, so I'm going to revert the change.