[libcxx] r220716 - [libcxx] use clang's __char16_t and __char32_t definitions on Linux in C++03 mode.

Eric Fiselier eric at efcs.ca
Mon Oct 27 13:29:05 PDT 2014


Author: ericwf
Date: Mon Oct 27 15:29:05 2014
New Revision: 220716

URL: http://llvm.org/viewvc/llvm-project?rev=220716&view=rev
Log:
[libcxx] use clang's __char16_t and __char32_t definitions on Linux in C++03 mode.

Summary: This fixes ODR violations in C++03 mode in test/localization/locale.stdcvt. The special case for linux was introduced in 2010 before clang always defined __char16_t and __char32_t.

Reviewers: mclow.lists, danalbert, jroelofs, EricWF

Reviewed By: EricWF

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D5930

Modified:
    libcxx/trunk/include/__config

Modified: libcxx/trunk/include/__config
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__config?rev=220716&r1=220715&r2=220716&view=diff
==============================================================================
--- libcxx/trunk/include/__config (original)
+++ libcxx/trunk/include/__config Mon Oct 27 15:29:05 2014
@@ -226,13 +226,9 @@
 #endif
 
 #if __cplusplus < 201103L
-#ifdef __linux__
-#define _LIBCPP_HAS_NO_UNICODE_CHARS
-#else
 typedef __char16_t char16_t;
 typedef __char32_t char32_t;
 #endif
-#endif
 
 #if !(__has_feature(cxx_exceptions))
 #define _LIBCPP_NO_EXCEPTIONS





More information about the cfe-commits mailing list