1a5728872c7702ddd09537c95bc3cbd20e1f2fb09Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s 28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics 3bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman// PR4287 4bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman 5bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman#include <stdarg.h> 6bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedmanchar *foo = "test"; 7bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedmanint test(char*,...); 8bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman 9bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedmanint test(fmt) 10bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman char*fmt; 11bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman{ 12bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman va_list ap; 13bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman char*a; 14bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman int x; 15bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman 16bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman va_start(ap,fmt); 17bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman a=va_arg(ap,char*); 18bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman x=(a!=foo); 19bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman va_end(ap); 20bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman return x; 21bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman} 22bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman 23bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedmanvoid exit(); 24bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman 25bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedmanint main(argc,argv) 26bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman int argc;char**argv; 27bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman{ 28bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman exit(test("",foo)); 29bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman} 30bc4e29f307f86ddbc2f31d9530da79ad9b0c6b7bEli Friedman 31