The LLVM integrated assembler incorrectly allows x86 instruction prefixes (like LOCK) without an actual instruction being prefixed. This should be rejected since LOCK isn't valid by itself: it's an instruction prefix that needs to be followed by an actual instruction. For example: int main() { __asm__("lock"); } The result is "Illegal instruction (core dumped)", since LOCK by itself isn't an instruction. This issue also occurs with (unstable) inline assembly in Rust (https://github.com/rust-lang/rust/issues/82314).