http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55742
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-01-14 Summary|__attribute__ in class |[4.8 regression] |function declaration cause |__attribute__ in class |"prototype does not match" |function declaration cause |errors. |"prototype does not match" | |errors. Ever Confirmed|0 |1 --- Comment #8 from Jason Merrill <jason at gcc dot gnu.org> 2013-01-14 14:33:21 UTC --- As I was saying on IRC, this is a change of behavior of the target attribute relative to 4.7, and therefore needs to be fixed for 4.8. The 4.7 behavior for this testcase must be restored, and MV needs to come up with a way of distinguishing between a redeclaration that omits optional attributes (as in this testcase) and an overload between two different versions. Perhaps use something like __attribute ((target ("any")) for the default version so that it's clear that a declaration with no target attribute is a redeclaration (which is ambiguous if there are already multiple versions).