Modify ctype.h headers to test for non-GNU inline semantics correctly
GCC and Clang will not define __GNUC_STDC_INLINE__ when compiling C++, so this
macro currently implies regular C++ inline semantics in C++. This may cause
the compiler to emit an external definition of the function, which will cause
link errors when compiling with -fvisibility=hidden; see e.g. crbug.com/481902.
To fix this, also test the __cplusplus macro when deciding whether to assume
non-GNU inline semantics.
Change-Id: Icbd1f42279c2f65610e62f21d4a0a09d3b0e091c
diff --git a/ndk/platforms/android-3/include/ctype.h b/ndk/platforms/android-3/include/ctype.h
index 58b76ea..711e646 100644
--- a/ndk/platforms/android-3/include/ctype.h
+++ b/ndk/platforms/android-3/include/ctype.h
@@ -59,7 +59,7 @@
/* extern __inline is a GNU C extension */
#ifdef __GNUC__
-# if defined(__GNUC_STDC_INLINE__)
+# if defined(__GNUC_STDC_INLINE__) || defined(__cplusplus) || defined(__cplusplus)
#define __CTYPE_INLINE extern __inline __attribute__((__gnu_inline__))
# else
#define __CTYPE_INLINE extern __inline