https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88734
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Actually, with -Wsystem-headers we do warn about that: include/arm_neon.h:33073:9: warning: ‘#pragma GCC option’ is not a string [-Wpragmas] 33073 | #pragma GCC target(("arch=armv8.2-a+sm4")) | ^~~ include/arm_neon.h:33140:9: warning: ‘#pragma GCC option’ is not a string [-Wpragmas] 33140 | #pragma GCC target(("arch=armv8.2-a+crypto")) | ^~~ include/arm_neon.h:33302:9: warning: ‘#pragma GCC option’ is not a string [-Wpragmas] 33302 | #pragma GCC target(("arch=armv8.3-a")) | ^~~ include/arm_neon.h:33305:9: warning: ‘#pragma GCC option’ is not a string [-Wpragmas] 33305 | #pragma GCC target(("+fp16")) | ^~~ include/arm_neon.h:33776:9: warning: ‘#pragma GCC option’ is not a string [-Wpragmas] 33776 | #pragma GCC target(("arch=armv8.2-a+fp16fml")) | ^~~ So it is just that nobody tried -Wsystem-headers with the arm and aarch64 intrinsic headers.