I’m not familiar enough with this asm syntax, there’s probably a much simpler solution here, just switching to a test that doesn’t need escaping.
I Noticed this on OSX with clang, though it likely happens elsewhere as well. The result is disabled x86_64 asm.
Due to missing escaping, this $0 was interpreted as the function name SECP_64BIT_ASM_CHECK, causing the compile-check to be broken on some compilers.
The actual check looked like this:
0int main()
1{
2 uint64_t a = 11, tmp;
3 __asm__ __volatile__("movq SECP_64BIT_ASM_CHECKx100000000,%1; mulq %%rsi" : "+a"(a) : "S"(tmp) : "cc", "%rdx");
4 return 0;
5}
It seems even more odd that it compiled anywhere.