[ms-inline asm] Updates and test case for r172743.

Part of rdar://12576868

llvm-svn: 172744
This commit is contained in:
Chad Rosier 2013-01-17 19:22:48 +00:00
parent d0ed73acb4
commit e343bc83f0
2 changed files with 29 additions and 17 deletions

View 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() {

View 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!}}
}
}