]> granicus.if.org Git - clang/commitdiff
Add test case for r179343.
authorChad Rosier <mcrosier@apple.com>
Thu, 11 Apr 2013 23:57:29 +0000 (23:57 +0000)
committerChad Rosier <mcrosier@apple.com>
Thu, 11 Apr 2013 23:57:29 +0000 (23:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179344 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/ms-inline-asm.cpp

index 7e11700e1a901730f5f2086d12056e923fcc4bca..99071aa81caaac95c2e77718594001756520f7b8 100644 (file)
@@ -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.
+}