#else
# define NULL ((void*)0)
#endif
-#undef __need_NULL
#ifdef __cplusplus
#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
#endif /* __STDDEF_H */
-/* Some C libraries set __need_NULL and expects NULL to be defined again. */
-#if defined(__need_NULL)
-#undef NULL
-#ifdef __cplusplus
-# if !defined(__MINGW32__) && !defined(_MSC_VER)
-# define NULL __null
-# else
-# define NULL 0
-# endif
-#else
-# define NULL ((void*)0)
-#endif
-#undef __need_NULL
-#endif
-
/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
#if defined(__need_wint_t)
+++ /dev/null
-// RUN: %clang_cc1 -fsyntax-only -triple i386-linux-gnu -verify -Wsentinel %s
-// expected-no-diagnostics
-
-#include <stddef.h>
-
-// linux/stddef.h does something like this for cpp files:
-#undef NULL
-#define NULL 0
-
-// glibc (and other) headers then define __need_NULL and rely on stddef.h
-// to redefine NULL to the correct value again.
-#define __need_NULL
-#include <stddef.h>
-
-// gtk headers then use __attribute__((sentinel)), which doesn't work if NULL
-// is 0.
-void f(const char* c, ...) __attribute__((sentinel));
-void g() {
- f("", NULL); // Shouldn't warn.
-}