Commit Graph

74 Commits

Author SHA1 Message Date
Dan Albert
7112dae6ac Merge to upstream r222492.
Change-Id: I6a0a6e90d217a69531ec3bb5ca0a367f39f4a1da
2014-11-20 17:26:48 -08:00
Dan Albert
5d14883f1b Make Android's ctype_base::mask unsigned.
Keeping the regex code sane is much easier if we match the other
platforms and use an unsigned mask.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@214442 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 3ab406107d)

Change-Id: If15df5f68783a23cbfc60075355f8481d60c11db
2014-07-31 14:15:34 -07:00
Dan Albert
6720d4bd04 Fix classic_locale for Android.
Android's classic_locale begins at _ctype_ + 1.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@213672 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-22 10:47:31 -07:00
Marshall Clow
e45cf3e8b5 Add support for BIONIC C library (Android). Patch from Dan Albert
Change-Id: I9ead4d8a1d16e71d57fdc7696457cfcc3de4f713
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@212724 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-10 16:52:03 -07:00
Dan Albert
2517f4fe31 Fix classic_table implementation for bionic
Change-Id: I26716b16bddcfb7109f436822067950fd99a5c08
2014-04-18 15:55:14 +00:00
Dan Albert
2ef012e474 Get libc++ building for Android
This adds an Android makefile, aliases locale aware cctype and cwctype
functions, fixes broken configuration in libcxx, and stubs functions missing
from bionic.

Change-Id: I247372d87caabe0310bedc4540b68ab2ed1986c1
2014-04-15 14:59:23 -07:00
Joerg Sonnenberger
4c6acb5ecd Switch to using C++ style casts.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@198505 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-04 17:43:00 +00:00
Marshall Clow
016d4e847a 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
2013-11-19 19:16:03 +00:00
Marshall Clow
2ccffefaff Patch by Bruce Mitchener. Change all references to EMSCRIPTEN to __EMSCRIPTEN__. If you're not using the PP symbol EMSCRIPTEN, then you should see no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@195136 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-19 18:05:03 +00:00
Marshall Clow
a36451371c Patch from GM: locale.cpp; make implicit conversions to bool explicit, fix some 'unknown pragma' warnings when compiling under MSVC, and don't use the __sso_allocator under windows, b/c MSVC doesn't support aligned-by value parameters
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@193086 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-21 15:07:28 +00:00
Howard Hinnant
ef5aa93b9c G M: Restore the ability for libcxx to compile again on mingw 64.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@190837 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-17 01:34:47 +00:00
Howard Hinnant
5143722d14 Xing Xue: Some minor changes for IBM XLC++/AIX.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189623 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-29 23:37:50 +00:00
Howard Hinnant
04a2c71d67 Turn off extern templates for most uses. It is causing more problems than it is worth. The extern templates will still be built into the dylib, mainly for ABI stability purposes. And the client can still turn these back on with a #define if desire. This fixes http://llvm.org/bugs/show_bug.cgi?id=17027. However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@189610 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-29 20:56:53 +00:00
Howard Hinnant
7f76450ee9 Xing Xue: port to IBM XLC++/AIX.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188396 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-14 18:00:20 +00:00
Howard Hinnant
e9df0a5c6c Nico Rieck: Currently _MSC_VER and _WIN32 are used to guard code which is
MSVC-specific, MSVCRT-specific, or Windows-specific. Because Clang can
also define _MSC_VER, and MSVCRT is not necessarily the only C runtime,
these macros should not be used interchangeably.

This patch divides all Windows-related bits into the aforementioned
categories. Two new macros are introduced:

- _LIBCPP_MSVC: Defined when compiling with MSVC. Detected using
  _MSC_VER, excluding Clang.
- _LIBCPP_MSVCRT: Defined when using the Microsoft CRT. This is the default
   when _WIN32 is defined.

This leaves _WIN32 for code using the Windows API.

This also corrects the spelling of _LIBCP_HAS_IS_BASE_OF to _LIBCPP_HAS_IS_BASE_OF.

Nico, please prepare a patch for CREDITS.TXT, thanks.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187593 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-01 18:17:34 +00:00
Howard Hinnant
b87922c2c5 Glen: Minor tweaks to locale.cpp to help it compile with exceptions turned off.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@187332 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-28 18:20:00 +00:00
Howard Hinnant
ed14a76beb Add some friendly messages to libcxx calls to abort().
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@186951 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-23 16:05:56 +00:00
Howard Hinnant
0769e6a785 Windows port for __codecvt_utf8<wchar_t>.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@185849 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-08 19:03:07 +00:00
Joerg Sonnenberger
9a06b9d017 Don't free the C locale on NetBSD.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@185467 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-02 19:46:18 +00:00
Joerg Sonnenberger
a71a952634 Add NetBSD support.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@182162 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-17 21:17:34 +00:00
Joerg Sonnenberger
be764c946c Don't try to free the C locale.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@181559 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-09 23:06:35 +00:00
Joerg Sonnenberger
5328cd307c Initialize codecvt explicitly with the C locale, which might not be 0.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@181534 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-09 19:00:18 +00:00
Joerg Sonnenberger
e58bc12f2a The push/pop variant of pragma GCC diagnostic is only supported by Clang
and GCC 4.6 and newer, so protect accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@180943 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02 19:34:26 +00:00
Joerg Sonnenberger
63d8f7e341 Add explicit casts to unsigned char before calling ctype functions.
Fixes the value range on platforms with signed char.


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@180940 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-02 19:17:48 +00:00
Joerg Sonnenberger
df4182153c Fix typos.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@180598 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-26 09:40:18 +00:00
Howard Hinnant
fc2f021bdd Bruce Mitchener, Jr.: Port to emscripten. Fixes http://llvm.org/bugs/show_bug.cgi?id=15624.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@178354 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-29 18:27:28 +00:00
Howard Hinnant
db4d478ff4 Fix a few warnings/errors for compiling with -fno-exceptions.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@178267 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-28 18:56:26 +00:00
Marshall Clow
a22d2addb1 Removed raw references to _WIN32; now just check to see if it is defined.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@177291 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18 17:04:29 +00:00
Marshall Clow
9ae96d0f21 More libc++ warning suppression on Linux; no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@174636 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07 17:20:56 +00:00
Marshall Clow
88c3190d6c Clean up some warnings for Linux build; No functionality change
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@174611 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07 14:22:51 +00:00
Howard Hinnant
21772ec063 Saleem Abdulrasool: GCC complains about the template functions as potentially not being able to be
inlined.  These do not need to be always-inlined for ABI stability because they are not exported beyond this source due to the unnamed namespace.
Also simplified use of the Wmissing-field-initializers pragma as was done for clang.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@171202 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-28 18:15:01 +00:00
Howard Hinnant
5f767b7b28 Saleem Abdulrasool: cleanup a few more compile warnings emitted by GCC.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@171173 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-27 23:24:31 +00:00
Howard Hinnant
bf68bdc4ed Saleem Abdulrasool: avoid hardcoding buffer lengths.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@171169 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-27 21:17:53 +00:00
Howard Hinnant
c6e54b964f Saleem Abdulrasool: This just rounds up a few compile warnings emitted by GCC (4.7.2).
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@171165 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-27 18:46:00 +00:00
Chad Rosier
27c836ff3a Remove redundant inits. Patch by Eitan Adler.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@170967 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-22 00:12:05 +00:00
Howard Hinnant
0a69fa14d2 Zhang Xiongpang: Add definitions for const data members. Fixes http://llvm.org/bugs/show_bug.cgi?id=14585.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@170026 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-12 21:14:28 +00:00
Howard Hinnant
cd99236231 Andrew Morrow: The attached patch updates the initialization of the 'struct tm' in
__time_get_storage<char> to match the initialization behavior in
__time_get_storage<wchar>. Without the initialization, valgrind
reports errors in the subsequent calls to strftime_l.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@161196 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02 18:44:17 +00:00
Howard Hinnant
ef793f2513 Andrew Morrow: Among the various libc++ tests that currently don't pass on Linux are
localization/locale.categories/category.collate/category.ctype/locale.ctype.byname/is_1.pass.cpp
and scan_is.pass.cpp. The tests fail when the character class being
tested is compound, like ctype_base::alnum or ctype_base::graph,
because the existing series of conditionals in do_is an do_scan_is
will abort too early. For instance, if the character class being
tested is alnum, and the character is numeric, do_is will return false
because iswalpha_l will return false, 'result' becomes false, and the
'true' result from the later call to iswdigit_l ends up being ignored
. A similar problem exists in do_scan_is.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@161192 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-02 18:35:07 +00:00
Jeffrey Yasskin
558ae17391 Fix moneypunct_byname algorithm to more accurately represent C locales in C++.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@152501 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-10 18:31:43 +00:00
Howard Hinnant
05b57d5cdf Change some smart_ptr == 0 to smart_ptr == nullptr. Fixes http://llvm.org/bugs/show_bug.cgi?id=12185.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@152240 91177308-0d34-0410-b5e6-96231b3b80d8
2012-03-07 20:37:43 +00:00
Howard Hinnant
fcbaf48f21 Add a warning to ctype<char>::classic_table() if not implemented.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@151728 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29 16:08:57 +00:00
David Chisnall
997e454139 Solaris port. Currently sees around 200 test failures, mostly related to
Solaris not providing some of the locales that the test suite uses.

Note: This depends on an xlocale (partial) implementation for Solaris and a
couple of fixed standard headers.  These will be committed to a branch later
today.



git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@151720 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29 13:05:08 +00:00
Howard Hinnant
335b1518e4 Silence -Wmissing-field-initializers a little higher in the source.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@150964 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-20 16:51:43 +00:00
Howard Hinnant
3074a05cdc Initialize all the fields of struct tm before passing it to strftime. One of the uninitialized fields, probably the pointer field tm_zone, was causing a segfault on linux. Patch contributed by Jeffrey Yasskin.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@150929 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-19 14:55:32 +00:00
Howard Hinnant
982331b66e Fix up narrowing conversions in switch statement.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@150082 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-08 19:15:06 +00:00
Howard Hinnant
ec3773c2da Quash a whole bunch of warnings
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@145624 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01 20:21:04 +00:00
Howard Hinnant
8db4acad3b de-tabbify
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@142237 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17 20:08:59 +00:00
Howard Hinnant
14fa9f9d8f Windows port work by Ruben Van Boxem
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@140805 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-29 20:33:10 +00:00
Howard Hinnant
3c466fc631 Windows patch work by Ruben Van Boxem
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@140781 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-29 13:33:15 +00:00
Howard Hinnant
866569b8c3 Attempted locale refactoring. _LIBCPP_LOCALE__L_EXTENSIONS now should be defined if one has all of the xxx_l() functions. I've defined this for apple, freebsd and win32. _LIBCPP_HAS_DEFAULTRUNELOCALE should be defined if there is a _DefaultRuneLocale. I've defined this for apple and freebsd. The block of code we're trying to migrate away from is now under #ifdef __linux__. I've tested only on OS X. I hope I haven't broken things too badly elsewhere. Please let me know.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@140734 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-28 23:39:33 +00:00