$ cat test.c void f() { char file[] = ""; __asm lea eax, file } Ehsan Akhgari@WIN-LD01V6P651K /c/moz/src/obj-ff-clangcl/gfx/cairo/cairo/src $ clang-cl -c test.c <inline asm>(2,2) : error: instruction requires: 64-bit mode lea eax, byte ptr file ^ 1 error generated.
The issue is that in Sema::LookupInlineAsmIdentifier, we look at the type of `file` and notice that it's an array type, so we set the size according to the size of the array (in this test case the size will be 1 which causes us to rewrite this and add a byte ptr.