1*67e74705SXin Li // RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li // PR6433 - Don't crash on va_arg(typedef). 4*67e74705SXin Li typedef double gdouble; focus_changed_cb()5*67e74705SXin Livoid focus_changed_cb () { 6*67e74705SXin Li __builtin_va_list pa; 7*67e74705SXin Li double mfloat; 8*67e74705SXin Li mfloat = __builtin_va_arg((pa), gdouble); 9*67e74705SXin Li } 10*67e74705SXin Li 11*67e74705SXin Li void vararg(int, ...); function_as_vararg()12*67e74705SXin Livoid function_as_vararg() { 13*67e74705SXin Li // CHECK: define {{.*}}function_as_vararg 14*67e74705SXin Li // CHECK-NOT: llvm.trap 15*67e74705SXin Li vararg(0, focus_changed_cb); 16*67e74705SXin Li } 17*67e74705SXin Li vla(int n,...)18*67e74705SXin Livoid vla(int n, ...) 19*67e74705SXin Li { 20*67e74705SXin Li __builtin_va_list ap; 21*67e74705SXin Li void *p; 22*67e74705SXin Li p = __builtin_va_arg(ap, typeof (int (*)[++n])); // CHECK: add nsw i32 {{.*}}, 1 23*67e74705SXin Li } 24