From 6d95257a919574e448c069061e2a03c6132bbb6b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 8 May 2003 03:46:51 +0000 Subject: [PATCH] Test the whole range of varargs handling stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6034 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Feature/varargs.ll | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/test/Feature/varargs.ll b/test/Feature/varargs.ll index 13f3581fe3e..defcd93cc66 100644 --- a/test/Feature/varargs.ll +++ b/test/Feature/varargs.ll @@ -1,9 +1,21 @@ +; Demonstrate all of the variable argument handling intrinsic functions plus +; the va_arg instruction. - +implementation +declare void %llvm.va_start(sbyte**, ...) +declare void %llvm.va_copy(sbyte**, sbyte*) +declare void %llvm.va_end(sbyte**) int %test(int %X, ...) { %ap = alloca sbyte* - ; This is not a legal testcase, it just shows the syntax for va_arg + %aq = alloca sbyte* + call void (sbyte**, ...)* %llvm.va_start(sbyte** %ap, int %X) + %apv = load sbyte** %ap + call void %llvm.va_copy(sbyte** %aq, sbyte* %apv) + call void %llvm.va_end(sbyte** %aq) + %tmp = va_arg sbyte** %ap, int + + call void %llvm.va_end(sbyte** %ap) ret int %tmp }