about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--string/string.h8
-rw-r--r--string/strings.h8
3 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 9528f88097..584f5896fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-12-24  Brooks Moses  <bmoses@google.com>
+
+	* string/string.h (__CORRECT_ISO_CPP_STRING_H_PROTO): Define for
+	all compilers that claim C++98 compliance, not just GCC.
+	* string/strings.h (__CORRECT_ISO_CPP_STRINGS_H_PROTO):
+	Likewise.
+
 2013-12-24  Maxim Kuvyrkov  <maxim@kugelworks.com>
 
 	* NEWS: Restore accidentally deleted bug-fix entries.
diff --git a/string/string.h b/string/string.h
index ecc3fef1bd..33d01ad71c 100644
--- a/string/string.h
+++ b/string/string.h
@@ -31,8 +31,12 @@ __BEGIN_DECLS
 #define	__need_NULL
 #include <stddef.h>
 
-/* Tell the caller that we provide correct C++ prototypes.  */
-#if defined __cplusplus && __GNUC_PREREQ (4, 4)
+/* Provide correct C++ prototypes, and indicate this to the caller.  This
+   requires a compatible C++ standard library.  As a heuristic, we provide
+   these when the compiler indicates full conformance with C++98 or later,
+   and for older GCC versions that are known to provide a compatible
+   libstdc++.  */
+#if defined __cplusplus && (__cplusplus >= 199711L || __GNUC_PREREQ (4, 4))
 # define __CORRECT_ISO_CPP_STRING_H_PROTO
 #endif
 
diff --git a/string/strings.h b/string/strings.h
index dad0a04467..0d2b5bf2a7 100644
--- a/string/strings.h
+++ b/string/strings.h
@@ -27,8 +27,12 @@
 # define __need_size_t
 # include <stddef.h>
 
-/* Tell the caller that we provide correct C++ prototypes.  */
-# if defined __cplusplus && __GNUC_PREREQ (4, 4)
+/* Provide correct C++ prototypes, and indicate this to the caller.  This
+   requires a compatible C++ standard library.  As a heuristic, we provide
+   these when the compiler indicates full conformance with C++98 or later,
+   and for older GCC versions that are known to provide a compatible
+   libstdc++.  */
+# if defined __cplusplus && (__cplusplus >= 199711L || __GNUC_PREREQ (4, 4))
 #  define __CORRECT_ISO_CPP_STRINGS_H_PROTO
 # endif