I am looking at one project that doesn't compile with clang++.
Source in __asm__ __volatile__(...) after preprocessor looks like this:
<...skipped...>"mov [r8+((1024+7-(15))-((1024+7-(15))/(8))*(8))*4]" ", " "ecx" ";"
This place breaks with this message:
sha.cpp:340:2: error: invalid instruction mnemonic 'prefix'
ASL(1)
^
./cpu.h:224:17: note: expanded from macro 'ASL' #define ASL(x) GNU_ASL(x)
^
./cpu.h:218:26: note: expanded from macro 'GNU_ASL' #define GNU_ASL(x) "\n" #x ":"
^
<scratch space>:24:2: note: expanded from here
"1"
^
However, there is the previous instance of the similar assembly that clang doesn't complain about:
"movdqa xmm1" ", " "[rcx+1*16]" ";"
"\n" "0" ":"
"movdqa [r8+((1024+7-(0+3))-((1024+7-(0+3))/(8))*(8))*4]" ", " "xmm1" ";"