https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71652
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> --- Thank you very much Jakub with the suggested hint. I applied basically what you suggested and I'm wondering whether target macro can really produce insane options that would eventually cause an ICE or another misleading error? As I've been playing with x86 target options I came to multiple question (probably something we should fix): 1) https://gcc.gnu.org/onlinedocs/gcc/x86-Function-Attributes.html#x86-Function-Attributes section does no document all accepted values of target attribute: fma avx512f avx512er avx512cd avx512pf avx512dq avx512bw avx512vl avx512ifma avx512vbmi 3dnow bmi bmi2 lzcnt hle fxsr rdseed prfchw adx tbm sha fsgsbase rdrnd f16c rtm xsave xsaveopt prefetchwt1 clflushopt xsavec xsaves clwb pcommit mwaitx Suggestion: let's document them 2) on the other hand, ‘fused-madd’ and ‘no-fused-madd’ are document, but we reject them: tc.cc:2:33: error: attribute(target("fused-madd")) is unknown probably because of: ./xg++ -B. tc.cc -mfused-madd xg++: warning: ‘-mfused-madd’ is deprecated; use ‘-ffp-contract=’ instead Suggestion: remove the option from documentation 3) There are ISA options that are not accepted: 3dnowa movbe crc32 mpx clzero pku Suggestion: accept them?