llvm-project/libcxx/include
Shoaib Meenai 8e07cadde0 [libc++] Hoist explicit instantiation above implicit. NFC
The string literal operators have implicit instantiations of
basic_string<char> and basic_string<wchar>, which prevent the dllimport
on the subsequent explicit instantiation declarations from having an
effect. Hoisting the explicit instantiations above the implicit ones
fixes the issue.

I think it's pretty unfortunate that the ordering has such an effect,
and I'd fixed the same issue for dllexport in r288682. dllimport is more
complicated from a codegen perspective, however, and clang's behavior of
ignoring the dllimport when there's a previous implicit instantiation is
consistent with cl, so changing the order is our only recourse.

llvm-svn: 306632
2017-06-29 02:52:46 +00:00
..
experimental any: Add availability for experimental::bad_any_cast 2017-06-18 14:52:26 +00:00
ext Remove usages of _LIBCPP_MSVC which is never defined 2017-05-10 21:40:58 +00:00
support PR32476: __nop_locale_mgmt.h not needed with newlib 2.5+ 2017-06-14 16:40:03 +00:00
CMakeLists.txt Simplify CMake target for the __generated_config header 2017-01-03 11:18:17 +00:00
__bit_reference [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__bsd_locale_defaults.h Reorganize _LIBCPP_LOCALE__L_EXTENSIONS 2016-03-09 15:39:39 +00:00
__bsd_locale_fallbacks.h Add missing include to __bsd_locale_fallbacks.h. Fixes https://bugs.llvm.org/show_bug.cgi?id=33370 2017-06-15 14:31:11 +00:00
__config [libcxx] Annotate c++17 aligned new/delete operators with availability 2017-06-26 17:39:48 +00:00
__config_site.in [libc++] Cleanup and document <__threading_support> 2017-01-06 20:05:40 +00:00
__debug [libc++] Introduce _LIBCPP_EXTERN_VIS to fix __libcpp_debug_function link errors 2017-01-16 21:01:00 +00:00
__functional_03 Add some const_casts in places where we were implicitly casting away constness. No functional change, but now they're explicit 2017-06-14 20:00:36 +00:00
__functional_base Fix bug 33389 - __is_transparent check requires too much 2017-06-13 14:34:58 +00:00
__functional_base_03 [libcxx] Rewrite C++03 __invoke. 2015-08-26 20:15:02 +00:00
__hash_table Fix some undefined behavior in __hash_table. Thanks to vsk for the report and the patch. Reviewed as https://reviews.llvm.org/D33588. 2017-06-03 00:08:32 +00:00
__libcpp_version Update version to 5.0 2017-01-13 18:29:56 +00:00
__locale Fix Libc++ build with MinGW64 2017-05-31 22:14:05 +00:00
__mutex_base Fix compile error with Bionic's PTHREAD_MUTEX_INITIALIZER 2017-06-07 20:47:42 +00:00
__nullptr [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
__refstring [libc++] Fix modules build - Rework __refstring definition 2016-10-25 19:33:14 +00:00
__split_buffer [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__sso_allocator [libc++] Tolerate presence of __deallocate macro 2017-01-07 03:01:24 +00:00
__std_stream [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__string [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__threading_support [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__tree [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__tuple Cleanup remaining usages of _LIBCPP_HAS_NO_<c++11-feature> in tuple and utility 2017-04-19 01:23:39 +00:00
__undef_macros [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
algorithm [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
any Implement part of LWG#2857 - any/optional. Still to do - variant. Reviewed as https://reviews.llvm.org/D31956 2017-04-12 22:51:27 +00:00
array [array.tuple]/1 says that instantiating tuple_element<N, array<T, M>> is ill-formed if N >= M. We didn't do that. Add a static_assert to cause a failure, and a test that checks that we failed 2017-06-12 14:41:37 +00:00
atomic Fix ATOMIC_<TYPE>_LOCK_FREE macros on Windows. 2017-04-20 23:22:46 +00:00
bitset [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
cassert
ccomplex
cctype Put back the undefs that Richard removed. Boost won't build w/o these; specifically the file 'bytes_methods.h' in Apple's python framework defines these. 2016-04-04 22:49:20 +00:00
cerrno Split <errno.h> out of <cerrno>. 2015-10-08 20:37:11 +00:00
cfenv Fix incorrect file header. This is <cfenv> not <cctype>. 2015-10-08 21:17:21 +00:00
cfloat Split <float.h> out of <cfloat>. 2015-10-08 20:37:44 +00:00
chrono [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
cinttypes Split <inttypes.h> out of <cinttypes>. 2015-10-08 20:38:53 +00:00
ciso646
climits
clocale Make support for thread-unsafe C functions optional. 2015-06-24 08:44:38 +00:00
cmath [libc++] Drop support for CRTs older than VS 2015 2017-04-07 02:20:52 +00:00
codecvt [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
complex [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
complex.h PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths. 2015-10-09 00:26:50 +00:00
condition_variable [libc++] Make _LIBCPP_TYPE_VIS export members 2017-03-02 03:22:18 +00:00
csetjmp Split <setjmp.h> out of <csetjmp>. 2015-10-08 20:41:26 +00:00
csignal
cstdarg
cstdbool
cstddef Implement P0298R3: 'std::byte'. Reviewed as https://reviews.llvm.org/D31022 2017-03-24 05:45:39 +00:00
cstdint
cstdio [libc++] Drop support for CRTs older than VS 2015 2017-04-07 02:20:52 +00:00
cstdlib [libc++] Respect Windows Store app CRT restrictions 2017-04-06 04:47:49 +00:00
cstring Fix overload sets of strchr, strpbrk, strrchr, memchr and strstr from 2016-02-10 00:59:02 +00:00
ctgmath
ctime Make support for thread-unsafe C functions optional. 2015-06-24 08:44:38 +00:00
ctype.h [libc++] Refactor Windows support headers. 2017-05-10 20:57:45 +00:00
cwchar [libc++] Remove unnecessary MSVCRT exclusions 2016-11-08 03:31:42 +00:00
cwctype Split <wctype.h> out of <cwctype>. 2015-10-09 19:57:37 +00:00
deque [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
errno.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
exception [libc++] Implement exception_ptr on Windows 2017-05-08 01:17:50 +00:00
float.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
forward_list [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
fstream Add some const_casts in places where we were implicitly casting away constness. No functional change, but now they're explicit 2017-06-14 20:00:36 +00:00
functional Add some const_casts in places where we were implicitly casting away constness. No functional change, but now they're explicit 2017-06-14 20:00:36 +00:00
future Add markup for libc++ dylib availability 2017-05-04 17:08:54 +00:00
initializer_list Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros for std::initializer_list 2017-04-18 23:09:36 +00:00
inttypes.h [include] Declare __STDC_*_MACROS for C++11 compat in old libc 2016-09-26 20:20:00 +00:00
iomanip Move 'quoted' for string_view from <string_view> to <iomanip> (where the other versions of 'quoted' live. No functional change. 2016-10-27 15:10:07 +00:00
ios Cleanup usages of _LIBCPP_HAS_NO_<c++11-feature> in <bitset>, <ios>, <locale>, and <iterator> 2017-04-19 01:34:08 +00:00
iosfwd [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
iostream
istream [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
iterator Implement LWG#2790: Remove istreambuf_iterator::operator->. It never did anything useful. 2017-05-23 18:55:32 +00:00
limits Fix more unreserved names 2017-06-01 02:29:37 +00:00
limits.h [libcxx] Fix gcc build. 2016-10-10 15:56:01 +00:00
list [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
locale [locale] Avoid copy of __atoms when char_type is char 2017-06-14 23:17:45 +00:00
locale.h [libcxx] Implement locale.h to fix modules build 2016-11-19 01:14:15 +00:00
map Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in std::map and std::multimap 2017-04-18 21:08:06 +00:00
math.h cmath: Skip Libc for integral types in isinf, etc. 2017-04-21 23:14:55 +00:00
memory Rework some metaprogramming to use the detection idiom; no functional change 2017-06-14 21:23:57 +00:00
module.modulemap [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
mutex Revert r304955 - Fix class template deduction for scoped_lock. 2017-06-08 07:18:15 +00:00
new [libcxx] Annotate c++17 aligned new/delete operators with availability 2017-06-26 17:39:48 +00:00
numeric Implement inclusive_scan/transform_inclusive_scan for C++17. 2017-06-23 05:12:42 +00:00
optional add missing constexpr to optional::value_or 2017-06-06 18:47:26 +00:00
ostream Add markup for libc++ dylib availability 2017-05-04 17:08:54 +00:00
queue Cleanup _LIBCPP_HAS_NO_<c++11-feature> for std::queue and std::priority_queue. 2017-04-18 21:23:18 +00:00
random [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
ratio [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
regex [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
scoped_allocator [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
set Cleanup _LIBCPP_HAS_NO_<c++11-feature> for std::set and std::multiset 2017-04-18 20:58:03 +00:00
setjmp.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
shared_mutex [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
sstream [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
stack Cleanup _LIBCPP_HAS_NO_<c++11-feature> macro uses in std::stack. 2017-04-18 21:16:26 +00:00
stdbool.h Add stdbool.h wrapper for libc++ 2016-02-20 00:16:41 +00:00
stddef.h Check for musl-libc's max_align_t in addition to other variants. 2017-02-10 01:27:42 +00:00
stdexcept Fix more unreserved names 2017-06-01 02:29:37 +00:00
stdint.h [include] Declare __STDC_*_MACROS for C++11 compat in old libc 2016-09-26 20:20:00 +00:00
stdio.h Fix Libc++ build with MinGW64 2017-05-31 22:14:05 +00:00
stdlib.h [libc++] Refactor Windows support headers. 2017-05-10 20:57:45 +00:00
streambuf [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
string [libc++] Hoist explicit instantiation above implicit. NFC 2017-06-29 02:52:46 +00:00
string.h Instead of asking glibc to provide correct C++ signatures for <string.h> 2016-02-11 23:51:02 +00:00
string_view Fix more unreserved names 2017-06-01 02:29:37 +00:00
strstream Cleanup _LIBCPP_HAS_NO_<c++11-feature> in the input.output library 2017-04-18 23:38:41 +00:00
system_error Add ABI option to remove recently inlined __shared_count functions from the library. 2017-01-17 03:16:26 +00:00
tgmath.h
thread [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
tuple Add tests for class template deduction on std::tuple. 2017-06-08 07:18:17 +00:00
type_traits [libc++] Implement LWG 2911 - add an is_aggregate type-trait 2017-04-12 23:08:46 +00:00
typeindex [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
typeinfo Add markup for libc++ dylib availability 2017-05-04 17:08:54 +00:00
unordered_map Cleanup _LIBCPP_HAS_NO_<c++11-feature> in std::unordered_map and std::unordered_multimap 2017-04-18 22:50:56 +00:00
unordered_set Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in std::unordered_set and std::unordered_multiset 2017-04-18 22:37:32 +00:00
utility Add an `__is_inplace_index` metafunction. 2017-06-14 05:51:18 +00:00
valarray [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
variant Add a missing SFINAE condition to the `variant`'s converting constructor. 2017-06-19 08:25:57 +00:00
vector [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
wchar.h Fix Libc++ build with MinGW64 2017-05-31 22:14:05 +00:00
wctype.h Split <wctype.h> out of <cwctype>. 2015-10-09 19:57:37 +00:00