Fixed va_arg example. Reported by Roman Samoilov

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35248 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Anton Korobeynikov 2007-03-21 23:58:04 +00:00
parent e4e4003032
commit 5d522f36ca

View File

@ -3627,11 +3627,11 @@ instruction and the variable argument handling intrinsic functions are
used.</p>
<pre>
define i32 %test(i32 %X, ...) {
define i32 @test(i32 %X, ...) {
; Initialize variable argument processing
%ap = alloca i8 *
%ap2 = bitcast i8** %ap to i8*
call void %<a href="#i_va_start">llvm.va_start</a>(i8* %ap2)
call void @llvm.va_start(i8* %ap2)
; Read a single integer argument
%tmp = va_arg i8 ** %ap, i32
@ -3639,13 +3639,17 @@ define i32 %test(i32 %X, ...) {
; Demonstrate usage of llvm.va_copy and llvm.va_end
%aq = alloca i8 *
%aq2 = bitcast i8** %aq to i8*
call void %<a href="#i_va_copy">llvm.va_copy</a>(i8 *%aq2, i8* %ap2)
call void %<a href="#i_va_end">llvm.va_end</a>(i8* %aq2)
call void @llvm.va_copy(i8 *%aq2, i8* %ap2)
call void @llvm.va_end(i8* %aq2)
; Stop processing of arguments.
call void %<a href="#i_va_end">llvm.va_end</a>(i8* %ap2)
call void @llvm.va_end(i8* %ap2)
ret i32 %tmp
}
declare void @llvm.va_start(i8*)
declare void @llvm.va_copy(i8*, i8*)
declare void @llvm.va_end(i8*)
</pre>
</div>