aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/CodeGen/ms-inline-asm.cpp22
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.
+}