llvm-project/libcxx
Eric Fiselier ea117bf9ad Mark libc++ internal globals with _LIBCPP_SAFE_STATIC.
This patch applies the _LIBCPP_SAFE_STATIC attribute to internal globals,
most of which are locking primitives, in order to ensure that they can
safely be used during program startup.

This patch also fixes an unsafe static init issue with the global locks
used to implement atomic operations on shared pointers. Previously the
locks were initialized using a dynamically initialized pointer, so it was
possible that the pointer was uninitialized.

llvm-svn: 282640
2016-09-28 22:08:13 +00:00
..
benchmarks Improve CMake output when registering benchmarks 2016-09-07 00:57:26 +00:00
cmake [CMake] NFC. Missed the other uses in r280406 2016-09-01 19:47:39 +00:00
docs [libc++] Fix extern template visibility for Windows 2016-09-19 18:29:07 +00:00
include Expect DLL builds on Windows by default and require a custom __config for static 2016-09-26 22:19:41 +00:00
lib [libcxx] Allow sanitizing libcxx with ASan+UBSan simultaneously 2016-09-15 11:04:53 +00:00
src Mark libc++ internal globals with _LIBCPP_SAFE_STATIC. 2016-09-28 22:08:13 +00:00
test [libc++] Extension: Make `move` and `forward` constexpr in C++11. 2016-09-26 20:55:02 +00:00
utils [libc++] Add _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY to support GCC ABI compatibility 2016-09-16 00:00:48 +00:00
www Mark LWG 2716 as complete - shuffle and sample disallows lvalue URNGs. 2016-08-28 21:55:00 +00:00
.arcconfig Upgrade arcconfig to use https 2016-07-18 02:02:49 +00:00
.gitignore Add MSVC specifics to .gitignore. Patch from STL@microsoft.com 2016-08-03 05:51:19 +00:00
CMakeLists.txt Revert r282483 - [cmake] Add linker option "-Wl,-z,defs" in standalone build 2016-09-27 18:54:02 +00:00
CREDITS.TXT Add entry to CREDITS.TXT for propagate_const 2016-06-19 19:36:28 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:39:53 +00:00
TODO.TXT Remove out of date items in TODO.txt 2016-09-27 01:28:47 +00:00