http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58105
Bug ID: 58105 Summary: wrong code generation for multiversioned functions Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: bernd.edlinger at hotmail dot de the following test cases fail on i686-*: g++.dg/ext/mv2.C g++.dg/ext/mv5.C g++.dg/ext/mv12.C The code is OK on -O0, -O1, but fails on -O2 and -O3. The problem seems to be that for multiversioned functions an internal dispatcher function is generated by ix86_generate_version_dispatcher_body(), which is being inlined in -O2 and above. But the inlined function does no longer call the target-specific function. Instead the return value is the address of the target-specific function.