PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@249788 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/complex.h b/include/complex.h
index 7003d31..c235966 100644
--- a/include/complex.h
+++ b/include/complex.h
@@ -18,6 +18,12 @@
 
 */
 
+#include <__config>
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#pragma GCC system_header
+#endif
+
 #ifdef __cplusplus
 
 #include <ccomplex>
@@ -28,8 +34,4 @@
 
 #endif  // __cplusplus
 
-#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
-#pragma GCC system_header
-#endif
-
 #endif  // _LIBCPP_COMPLEX_H
diff --git a/include/cstddef b/include/cstddef
index 1210b91..edd106c 100644
--- a/include/cstddef
+++ b/include/cstddef
@@ -34,14 +34,15 @@
 */
 
 #include <__config>
-// Don't include our own <stddef.h>; we don't want to declare ::nullptr_t.
-#include_next <stddef.h>
-#include <__nullptr>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+// Don't include our own <stddef.h>; we don't want to declare ::nullptr_t.
+#include_next <stddef.h>
+#include <__nullptr>
+
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 using ::ptrdiff_t;
diff --git a/include/ctype.h b/include/ctype.h
index 63f0b29..22d6c49 100644
--- a/include/ctype.h
+++ b/include/ctype.h
@@ -31,12 +31,13 @@
 */
 
 #include <__config>
-#include_next <ctype.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+#include_next <ctype.h>
+
 #ifdef __cplusplus
 
 #if defined(_LIBCPP_MSVCRT)
diff --git a/include/errno.h b/include/errno.h
index 3cda2af..556ef61 100644
--- a/include/errno.h
+++ b/include/errno.h
@@ -24,12 +24,13 @@
 */
 
 #include <__config>
-#include_next <errno.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+#include_next <errno.h>
+
 #if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE)
 
 #ifdef ELAST
diff --git a/include/float.h b/include/float.h
index 275388e..f890c68 100644
--- a/include/float.h
+++ b/include/float.h
@@ -61,12 +61,13 @@
 */
 
 #include <__config>
-#include_next <float.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+#include_next <float.h>
+
 #ifndef FLT_EVAL_METHOD
 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
 #endif
diff --git a/include/inttypes.h b/include/inttypes.h
index a20a561..328e57e 100644
--- a/include/inttypes.h
+++ b/include/inttypes.h
@@ -232,12 +232,13 @@
 */
 
 #include <__config>
-#include_next <inttypes.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+#include_next <inttypes.h>
+
 #ifdef __cplusplus
 
 #include <stdint.h>
diff --git a/include/math.h b/include/math.h
index dc05622..2020554 100644
--- a/include/math.h
+++ b/include/math.h
@@ -293,12 +293,13 @@
 */
 
 #include <__config>
-#include_next <math.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+#include_next <math.h>
+
 #ifdef __cplusplus
 
 // We support including .h headers inside 'extern "C"' contexts, so switch
diff --git a/include/setjmp.h b/include/setjmp.h
index d429c86..ec4a5f6 100644
--- a/include/setjmp.h
+++ b/include/setjmp.h
@@ -27,12 +27,13 @@
 */
 
 #include <__config>
-#include_next <setjmp.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+#include_next <setjmp.h>
+
 #ifndef setjmp
 #define setjmp(env) setjmp(env)
 #endif
diff --git a/include/stddef.h b/include/stddef.h
index 6ffe582..8841bbe 100644
--- a/include/stddef.h
+++ b/include/stddef.h
@@ -10,6 +10,11 @@
 
 #if defined(__need_ptrdiff_t) || defined(__need_size_t) || \
     defined(__need_wchar_t) || defined(__need_NULL) || defined(__need_wint_t)
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#pragma GCC system_header
+#endif
+
 #include_next <stddef.h>
 
 #elif !defined(_LIBCPP_STDDEF_H)
@@ -33,12 +38,13 @@
 */
 
 #include <__config>
-#include_next <stddef.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
 #endif
 
+#include_next <stddef.h>
+
 #ifdef __cplusplus
 
 extern "C++" {