[ms-inline asm] Updates and test case for r172743.
authorChad Rosier <mcrosier@apple.com>
Thu, 17 Jan 2013 19:22:48 +0000 (19:22 +0000)
committerChad Rosier <mcrosier@apple.com>
Thu, 17 Jan 2013 19:22:48 +0000 (19:22 +0000)
Part of rdar://12576868

llvm-svn: 172744

clang/test/CodeGen/ms-inline-asm.c
clang/test/Sema/ms-inline-asm.c

index 5031722..9943fbb 100644 (file)
@@ -198,10 +198,38 @@ int t19() {
 }
 
 void t20() {
+  char bar;
   int foo;
-  __asm mov eax, TYPE foo
+  char _bar[2];
+  int _foo[4];
+
+  __asm mov eax, LENGTH foo
+  __asm mov eax, LENGTH bar
+  __asm mov eax, LENGTH _foo
+  __asm mov eax, LENGTH _bar
 // CHECK: t20
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$1", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$1", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$4", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$2", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+
+  __asm mov eax, TYPE foo
+  __asm mov eax, TYPE bar
+  __asm mov eax, TYPE _foo
+  __asm mov eax, TYPE _bar
 // CHECK: call void asm sideeffect inteldialect "mov eax, $$4", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$1", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$4", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$1", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+
+  __asm mov eax, SIZE foo
+  __asm mov eax, SIZE bar
+  __asm mov eax, SIZE _foo
+  __asm mov eax, SIZE _bar
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$4", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$1", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$16", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
+// CHECK: call void asm sideeffect inteldialect "mov eax, $$2", "~{eax},~{dirflag},~{fpsr},~{flags}"() nounwind
 }
 
 void t21() {
index 538d56a..4f6d689 100644 (file)
@@ -19,20 +19,4 @@ void f() {
   __asm {
     mov eax, 1+++ // expected-error 2 {{unknown token in expression}}
   }
-  f();
-  __asm {
-    mov eax, TYPE cat // expected-error {{Unable to lookup TYPE of expr!}}
-  }
-  f();
-  __asm {
-    mov eax, SIZE foo // expected-error {{Unsupported directive!}}
-  }
-  f();
-  __asm {
-    mov eax, LENGTH foo // expected-error {{Unsupported directive!}}
-  }
-  f();
-  __asm {
-    mov eax, TYPE bar // expected-error {{Unable to lookup TYPE of expr!}}
-  }
 }