OSDN Git Service

testcase for PR4678 & rdar://7309675
authorChris Lattner <sabre@nondot.org>
Thu, 22 Oct 2009 04:47:09 +0000 (04:47 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 22 Oct 2009 04:47:09 +0000 (04:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84830 91177308-0d34-0410-b5e6-96231b3b80d8

test/FrontendC++/2009-08-03-Varargs.cpp [deleted file]
test/FrontendC++/varargs.cpp [new file with mode: 0644]

diff --git a/test/FrontendC++/2009-08-03-Varargs.cpp b/test/FrontendC++/2009-08-03-Varargs.cpp
deleted file mode 100644 (file)
index cea3894..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %llvmgxx %s -S -emit-llvm -o - | grep _Z1az\(\.\.\.\)
-// XFAIL: *
-// PR4678
-void a(...) {
-}
diff --git a/test/FrontendC++/varargs.cpp b/test/FrontendC++/varargs.cpp
new file mode 100644 (file)
index 0000000..1c07aed
--- /dev/null
@@ -0,0 +1,19 @@
+// RUN: %llvmgxx -S -emit-llvm %s -o - | FileCheck %s
+// rdar://7309675
+// PR4678
+
+// test1 should be compmiled to be a varargs function in the IR even 
+// though there is no way to do a va_begin.  Otherwise, the optimizer
+// will warn about 'dropped arguments' at the call site.
+
+// CHECK: define i32 @_Z5test1z(...)
+int test1(...) {
+  return -1;
+}
+
+// CHECK: call i32 (...)* @_Z5test1z(i32 0)
+void test() {
+  test1(0);
+}
+
+