https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78333
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-11-14 Component|ipa |middle-end Version|unknown |6.2.1 Summary|Intrinsics lack |always-inline gnu-inline |no_instrument_function |functions break |attribute and thus breaks |-finstrument-functions |-finstrument-functions | Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set1_ps (float __F) { return __extension__ (__m128)(__v4sf){ __F, __F, __F, __F }; } which would hint at that the issue happens for all extern always-inline functions: extern inline __attribute__((gnu_inline, always_inline)) int foo () { } int main() { foo (); } fails the same way. Thus it's a bug of the instrumentation code.