Index: cfe/trunk/lib/Headers/stdarg.h =================================================================== --- cfe/trunk/lib/Headers/stdarg.h +++ cfe/trunk/lib/Headers/stdarg.h @@ -43,10 +43,9 @@ #define va_copy(dest, src) __builtin_va_copy(dest, src) #endif -/* Hack required to make standard headers work, at least on Ubuntu */ #ifndef __GNUC_VA_LIST #define __GNUC_VA_LIST 1 -#endif typedef __builtin_va_list __gnuc_va_list; +#endif #endif /* __STDARG_H */ Index: cfe/trunk/test/Headers/stdarg-gnuc_va_list.c =================================================================== --- cfe/trunk/test/Headers/stdarg-gnuc_va_list.c +++ cfe/trunk/test/Headers/stdarg-gnuc_va_list.c @@ -0,0 +1,10 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -Wsystem-headers -std=c99 %s +// expected-no-diagnostics + +// Check that no warnings are emitted from stdarg.h if __gnuc_va_list has +// previously been defined in another header file. +typedef __builtin_va_list __va_list; +typedef __va_list __gnuc_va_list; +#define __GNUC_VA_LIST + +#include