diff options
-rw-r--r-- | test/CodeGen/ms-inline-asm.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/CodeGen/ms-inline-asm.cpp b/test/CodeGen/ms-inline-asm.cpp index 7e11700e1a..99071aa81c 100644 --- a/test/CodeGen/ms-inline-asm.cpp +++ b/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. +} |