From 016d4e847a53d310dfac6b0d93782f4221e7700a Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Tue, 19 Nov 2013 19:16:03 +0000 Subject: [PATCH] Patch by Xing Xue to improve libc++ support for AIX git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@195144 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/__config | 3 +-- include/support/ibm/support.h | 2 +- src/locale.cpp | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/include/__config b/include/__config index aa8bc448..874bcc15 100644 --- a/include/__config +++ b/include/__config @@ -454,7 +454,6 @@ namespace std { #define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS #define _LIBCPP_HAS_NO_NULLPTR #define _LIBCPP_HAS_NO_UNICODE_CHARS -#define _LIBCPP_HAS_NO_STRONG_ENUMS #define _LIBCPP_HAS_IS_BASE_OF #if defined(_AIX) @@ -514,7 +513,7 @@ template struct __static_assert_check {}; #define __has_feature(__x) 0 #endif -#if __has_feature(cxx_explicit_conversions) +#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) # define _LIBCPP_EXPLICIT explicit #else # define _LIBCPP_EXPLICIT diff --git a/include/support/ibm/support.h b/include/support/ibm/support.h index 3effbaed..0abfa7f9 100644 --- a/include/support/ibm/support.h +++ b/include/support/ibm/support.h @@ -15,7 +15,7 @@ extern "builtin" int __popcnt4(unsigned int); extern "builtin" int __popcnt8(unsigned long long); extern "builtin" unsigned int __cnttz4(unsigned int); extern "builtin" unsigned int __cnttz8(unsigned long long); -extern "builtin" unsigned int __cntlz4(unsigned long long); +extern "builtin" unsigned int __cntlz4(unsigned int); extern "builtin" unsigned int __cntlz8(unsigned long long); // Builtin functions for counting population diff --git a/src/locale.cpp b/src/locale.cpp index a326323a..8e7fdb43 100644 --- a/src/locale.cpp +++ b/src/locale.cpp @@ -1036,7 +1036,7 @@ ctype::classic_table() _NOEXCEPT #elif defined(__EMSCRIPTEN__) return *__ctype_b_loc(); #elif defined(_AIX) - return (const unsigned long *)__lc_ctype_ptr->obj->mask; + return (const unsigned int *)__lc_ctype_ptr->obj->mask; #else // Platform not supported: abort so the person doing the port knows what to // fix