1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify -triple=x86_64-unknown-freebsd7.0 %s 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 3c34bcde8d2aa7430cb2f3abb003d9248842748b8Eli Friedman 4efbe85c8ef4090147b371f616044c72d9b254095Eli Friedman// PR2631 5c34bcde8d2aa7430cb2f3abb003d9248842748b8Eli Friedmanchar* foo(char *fmt, __builtin_va_list ap) 6c34bcde8d2aa7430cb2f3abb003d9248842748b8Eli Friedman{ 7c34bcde8d2aa7430cb2f3abb003d9248842748b8Eli Friedman return __builtin_va_arg((ap), char *); 8c34bcde8d2aa7430cb2f3abb003d9248842748b8Eli Friedman} 9efbe85c8ef4090147b371f616044c72d9b254095Eli Friedman 10efbe85c8ef4090147b371f616044c72d9b254095Eli Friedman// PR2692 11efbe85c8ef4090147b371f616044c72d9b254095Eli Friedmantypedef __builtin_va_list va_list; 12d1969d803cfcc65f1c334df4cc89c7fdd33ee4c9Mike Stumpstatic void f (char * (*g) (char **, int), char **p, ...) { 13d1969d803cfcc65f1c334df4cc89c7fdd33ee4c9Mike Stump char *s; 14d1969d803cfcc65f1c334df4cc89c7fdd33ee4c9Mike Stump va_list v; 15d1969d803cfcc65f1c334df4cc89c7fdd33ee4c9Mike Stump s = g (p, __builtin_va_arg(v, int)); 16efbe85c8ef4090147b371f616044c72d9b254095Eli Friedman} 17