1// RUN: %clang_cc1 -triple le32-unknown-nacl -emit-llvm -o - %s | FileCheck %s
2#include <stdarg.h>
3
4int 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
11struct Foo {
12  int x;
13};
14
15struct Foo dest;
16
17void 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
24void 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