• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 -triple le32-unknown-nacl -emit-llvm -o - %s | FileCheck %s
2 #include <stdarg.h>
3 
get_int(va_list * args)4 int get_int(va_list *args) {
5   return va_arg(*args, int);
6 }
7 // CHECK: define i32 @get_int
8 // CHECK: [[RESULT:%[a-z_0-9]+]] = va_arg {{.*}}, i32{{$}}
9 // CHECK: ret i32 [[RESULT]]
10 
11 struct Foo {
12   int x;
13 };
14 
15 struct Foo dest;
16 
get_struct(va_list * args)17 void get_struct(va_list *args) {
18   dest = va_arg(*args, struct Foo);
19 }
20 // CHECK: define void @get_struct
21 // CHECK: [[RESULT:%[a-z_0-9]+]] = va_arg {{.*}}, %struct.Foo{{$}}
22 // CHECK: store %struct.Foo [[RESULT]], %struct.Foo* @dest
23 
skip_struct(va_list * args)24 void skip_struct(va_list *args) {
25   va_arg(*args, struct Foo);
26 }
27 // CHECK: define void @skip_struct
28 // CHECK: va_arg {{.*}}, %struct.Foo{{$}}
29