aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2013-04-11 23:57:29 +0000
committerChad Rosier <mcrosier@apple.com>2013-04-11 23:57:29 +0000
commit5e768cad6a660d439f1a19c06b423bed30f91f97 (patch)
tree3727fadeec02e7b671a5643ef13a15dbfe86b4f5
parentdbcfa8b95543cd8601c6acd9021168f0019f9757 (diff)
Add test case for r179343.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179344 91177308-0d34-0410-b5e6-96231b3b80d8
-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.
+}