From 74bbf7c7eed54cd01ad49c36820269bb7bfb5592 Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Mon, 16 Mar 2015 14:27:44 +0000 Subject: [PATCH] Make *abs() and *div() work on CloudABI. According to POSIX, *abs() and *div() are allowed to be macros (in addition to being functions). Make sure we undefine these, so that std::*abs() and std::*div() work as expected. llvm-svn: 232379 --- libcxx/include/cinttypes | 2 ++ libcxx/include/cstdlib | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/libcxx/include/cinttypes b/libcxx/include/cinttypes index 786692b8fec3c6..cfd763c98f4a24 100644 --- a/libcxx/include/cinttypes +++ b/libcxx/include/cinttypes @@ -247,7 +247,9 @@ _LIBCPP_BEGIN_NAMESPACE_STD using::imaxdiv_t; +#undef imaxabs using::imaxabs; +#undef imaxdiv using::imaxdiv; using::strtoimax; using::strtoumax; diff --git a/libcxx/include/cstdlib b/libcxx/include/cstdlib index 152b891de78e47..298040e3f49451 100644 --- a/libcxx/include/cstdlib +++ b/libcxx/include/cstdlib @@ -131,14 +131,20 @@ using ::getenv; using ::system; using ::bsearch; using ::qsort; +#undef abs using ::abs; +#undef labs using ::labs; #ifndef _LIBCPP_HAS_NO_LONG_LONG +#undef llabs using ::llabs; #endif // _LIBCPP_HAS_NO_LONG_LONG +#undef div using ::div; +#undef ldiv using ::ldiv; #ifndef _LIBCPP_HAS_NO_LONG_LONG +#undef lldiv using ::lldiv; #endif // _LIBCPP_HAS_NO_LONG_LONG using ::mblen;