summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libcxx/include/__config11
-rw-r--r--libcxx/include/errno.h4
-rw-r--r--libcxx/include/float.h4
-rw-r--r--libcxx/include/inttypes.h2
-rw-r--r--libcxx/include/setjmp.h4
-rw-r--r--libcxx/include/stdlib.h2
6 files changed, 24 insertions, 3 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config
index b7e3532729d..1fe96d0ba08 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -11,10 +11,16 @@
#ifndef _LIBCPP_CONFIG
#define _LIBCPP_CONFIG
-#if !defined(_MSC_VER) || defined(__clang__)
+#if defined(_MSC_VER) && !defined(__clang__)
+#define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
+#endif
+
+#ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
#pragma GCC system_header
#endif
+#ifdef __cplusplus
+
#ifdef __GNUC__
#define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__)
#else
@@ -526,7 +532,6 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
#elif defined(_LIBCPP_MSVC)
#define _LIBCPP_HAS_NO_TEMPLATE_ALIASES
-#define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
#define _LIBCPP_HAS_NO_CONSTEXPR
#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR
#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES
@@ -811,4 +816,6 @@ extern "C" void __sanitizer_annotate_contiguous_container(
#define _LIBCPP_HAS_NO_ATOMIC_HEADER
#endif
+#endif // __cplusplus
+
#endif // _LIBCPP_CONFIG
diff --git a/libcxx/include/errno.h b/libcxx/include/errno.h
index 556ef6112ec..ee6429110cc 100644
--- a/libcxx/include/errno.h
+++ b/libcxx/include/errno.h
@@ -31,6 +31,8 @@ Macros:
#include_next <errno.h>
+#ifdef __cplusplus
+
#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE)
#ifdef ELAST
@@ -391,4 +393,6 @@ static const int __elast2 = 105;
#define EMLINK 9979
#endif
+#endif // __cplusplus
+
#endif // _LIBCPP_ERRNO_H
diff --git a/libcxx/include/float.h b/libcxx/include/float.h
index f890c680851..1acfdc6188f 100644
--- a/libcxx/include/float.h
+++ b/libcxx/include/float.h
@@ -68,6 +68,8 @@ Macros:
#include_next <float.h>
+#ifdef __cplusplus
+
#ifndef FLT_EVAL_METHOD
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
#endif
@@ -76,4 +78,6 @@ Macros:
#define DECIMAL_DIG __DECIMAL_DIG__
#endif
+#endif // __cplusplus
+
#endif // _LIBCPP_FLOAT_H
diff --git a/libcxx/include/inttypes.h b/libcxx/include/inttypes.h
index 328e57e5e4e..5c5618bef88 100644
--- a/libcxx/include/inttypes.h
+++ b/libcxx/include/inttypes.h
@@ -246,6 +246,6 @@ uintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int
#undef imaxabs
#undef imaxdiv
-#endif
+#endif // __cplusplus
#endif // _LIBCPP_INTTYPES_H
diff --git a/libcxx/include/setjmp.h b/libcxx/include/setjmp.h
index ec4a5f695f3..464b4a54089 100644
--- a/libcxx/include/setjmp.h
+++ b/libcxx/include/setjmp.h
@@ -34,8 +34,12 @@ void longjmp(jmp_buf env, int val);
#include_next <setjmp.h>
+#ifdef __cplusplus
+
#ifndef setjmp
#define setjmp(env) setjmp(env)
#endif
+#endif // __cplusplus
+
#endif // _LIBCPP_SETJMP_H
diff --git a/libcxx/include/stdlib.h b/libcxx/include/stdlib.h
index 919faa169b7..12fd676a15f 100644
--- a/libcxx/include/stdlib.h
+++ b/libcxx/include/stdlib.h
@@ -94,6 +94,7 @@ void *aligned_alloc(size_t alignment, size_t size); // C11
#include_next <stdlib.h>
#ifdef __cplusplus
+
extern "C++" {
#ifdef _LIBCPP_MSVCRT
@@ -123,6 +124,7 @@ inline _LIBCPP_INLINE_VISIBILITY lldiv_t div(long long __x, long long __y) _NOEX
#endif // _LIBCPP_MSVCRT / __sun__ / _AIX
} // extern "C++"
+
#endif // __cplusplus
#endif // _LIBCPP_STDLIB_H
OpenPOWER on IntegriCloud