https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124
Bug ID: 89124 Summary: __attribute__((no_sanitize_address)) interferes with __attribute__((target(xxx))) Product: gcc Version: 8.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: thiago at kde dot org CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- $ cat test.cpp #include <immintrin.h> #ifdef __GNUC__ __attribute__((target("avx2"), no_sanitize_address)) #endif void f(void *ptr) { _mm256_loadu_si256((__m256i *)ptr); } $ gcc -c test.cpp && echo ok ok $ gcc -c -fsanitize=addreess test.cpp In file included from /opt/compiler-explorer/gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/include/immintrin.h:41, from <source>:1: /opt/compiler-explorer/gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/include/avxintrin.h: In function 'void f(void*)': /opt/compiler-explorer/gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/include/avxintrin.h:919:1: error: inlining failed in call to always_inline '__m256i _mm256_loadu_si256(const __m256i_u*)': function attribute mismatch _mm256_loadu_si256 (__m256i_u const *__P) ^~~~~~~~~~~~~~~~~~ <source>:8:23: note: called from here _mm256_loadu_si256((__m256i *)ptr); ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ Works fine in Clang. Godbolt link: https://godbolt.org/z/rg5kUD