diff --git a/clang/test/CodeGen/ms-inline-asm.cpp b/clang/test/CodeGen/ms-inline-asm.cpp index 7e11700e1a90..99071aa81caa 100644 --- a/clang/test/CodeGen/ms-inline-asm.cpp +++ b/clang/test/CodeGen/ms-inline-asm.cpp @@ -4,8 +4,10 @@ struct Foo { static int *ptr; static int a, b; + int arr[4]; struct Bar { static int *ptr; + char arr[2]; }; }; @@ -34,3 +36,23 @@ void t2() { // CHECK: call void asm sideeffect inteldialect "mov eax, Foo::ptr", "~{eax},~{dirflag},~{fpsr},~{flags}"() // CHECK: call void asm sideeffect inteldialect "mov eax, Foo::Bar::ptr", "~{eax},~{dirflag},~{fpsr},~{flags}"() } + +void t3() { + __asm mov eax, LENGTH Foo::ptr + __asm mov eax, LENGTH Foo::Bar::ptr + __asm mov eax, LENGTH Foo::arr + __asm mov eax, LENGTH Foo::Bar::arr + + __asm mov eax, TYPE Foo::ptr + __asm mov eax, TYPE Foo::Bar::ptr + __asm mov eax, TYPE Foo::arr + __asm mov eax, TYPE Foo::Bar::arr + + __asm mov eax, SIZE Foo::ptr + __asm mov eax, SIZE Foo::Bar::ptr + __asm mov eax, SIZE Foo::arr + __asm mov eax, SIZE Foo::Bar::arr +// CHECK: t3 +// FIXME: These tests just make sure we can parse things properly. +// Additional work needs to be done in Sema to perform the lookup. +}