diff options
Diffstat (limited to 'test/CodeGen/mips-unsigned-ext-var.c')
| -rw-r--r-- | test/CodeGen/mips-unsigned-ext-var.c | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/test/CodeGen/mips-unsigned-ext-var.c b/test/CodeGen/mips-unsigned-ext-var.c new file mode 100644 index 000000000000..2e04792cf375 --- /dev/null +++ b/test/CodeGen/mips-unsigned-ext-var.c @@ -0,0 +1,22 @@ +// RUN: %clang_cc1 -triple mips64-unknown-linux -O2 -target-abi n64 -S -emit-llvm %s -o - | FileCheck %s -check-prefix=N64 +// RUN: %clang_cc1 -triple mips64-unknown-linux -O2 -target-abi n32 -S -emit-llvm %s -o - | FileCheck %s -check-prefix=N32 +// RUN: %clang_cc1 -triple mips-unknown-linux -O2 -target-abi o32 -S -emit-llvm %s -o - | FileCheck %s -check-prefix=O32 + +#include <stdarg.h> + +unsigned foo(int x, ...) { +  va_list valist; +  va_start(valist, x); +  unsigned a; +  a = va_arg(valist, unsigned); +  return a; +} + +void foo1() { +  unsigned f = 0xffffffe0; +  foo(1,f); +} + +//N64: call i32 (i32, ...) @foo(i32 signext undef, i32 signext -32) +//N32: call i32 (i32, ...) @foo(i32 signext undef, i32 signext -32) +//O32: call i32 (i32, ...) @foo(i32 signext undef, i32 signext -32)
\ No newline at end of file | 
