summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-02-11 23:51:02 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-02-11 23:51:02 +0000
commitebe55fc655e3ac05e5e8f4881809cf5fc2edc5bf (patch)
treeff4918a82c51f77eb9bd85d1f3901aa3f63feb2b
parent410ed303baa8973a7418b8f40b2a3b45d4d48a98 (diff)
Instead of asking glibc to provide correct C++ signatures for <string.h>
functions, ask it whether it did provide them after the fact. Some versions of glibc fail to compile if you make this request and don't also claim to be at least GCC 4.3. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@260622 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/string.h14
1 files changed, 5 insertions, 9 deletions
diff --git a/include/string.h b/include/string.h
index 5f14c37e4..a1ce56cbc 100644
--- a/include/string.h
+++ b/include/string.h
@@ -58,17 +58,13 @@ size_t strlen(const char* s);
#pragma GCC system_header
#endif
-#ifdef __cplusplus
-#define __CORRECT_ISO_CPP_STRING_H_PROTO
-#endif
-
#include_next <string.h>
-// MSVCRT, GNU libc and its derivates already have the correct prototype in
-// <string.h> if __cplusplus is defined. This macro can be defined by users if
-// their C library provides the right signature.
-#if defined(__GLIBC__) || defined(_LIBCPP_MSVCRT) || defined(__sun__) || \
- defined(_STRING_H_CPLUSPLUS_98_CONFORMANCE_)
+// MSVCRT, GNU libc and its derivates may already have the correct prototype in
+// <string.h>. This macro can be defined by users if their C library provides
+// the right signature.
+#if defined(__CORRECT_ISO_CPP_STRING_H_PROTO) || defined(_LIBCPP_MSVCRT) || \
+ defined(__sun__) || defined(_STRING_H_CPLUSPLUS_98_CONFORMANCE_)
#define _LIBCPP_STRING_H_HAS_CONST_OVERLOADS
#endif