tests for struct/union as input operands to asm.
authorDale Johannesen <dalej@apple.com>
Fri, 13 Apr 2007 22:54:11 +0000 (22:54 +0000)
committerDale Johannesen <dalej@apple.com>
Fri, 13 Apr 2007 22:54:11 +0000 (22:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35976 91177308-0d34-0410-b5e6-96231b3b80d8

test/CFrontend/2007-04-13-InlineAsmStruct2.c [new file with mode: 0644]
test/CFrontend/2007-04-13-InlineAsmUnion2.c [new file with mode: 0644]

diff --git a/test/CFrontend/2007-04-13-InlineAsmStruct2.c b/test/CFrontend/2007-04-13-InlineAsmStruct2.c
new file mode 100644 (file)
index 0000000..8639b76
--- /dev/null
@@ -0,0 +1,9 @@
+// RUN: %llvmgcc %s -S -emit-llvm -o - | grep 'call void asm'
+
+struct V { short X, Y; };
+int bar() {
+  struct V bar;
+  __asm__ volatile("foo %0\n" :: "r"(bar));
+  return bar.X;
+}
+
diff --git a/test/CFrontend/2007-04-13-InlineAsmUnion2.c b/test/CFrontend/2007-04-13-InlineAsmUnion2.c
new file mode 100644 (file)
index 0000000..76bd784
--- /dev/null
@@ -0,0 +1,7 @@
+// RUN: %llvmgcc %s -S -emit-llvm -o - | grep 'call void asm'
+
+union U { int x; char* p; };
+void foo() {
+  union U bar;
+  __asm__ volatile("foo %0\n" :: "r"(bar));
+}