llvm-project/libcxx
Louis Dionne 7232a84e68 [libc++] Avoid UB in the no-exceptions mode in a few places
Summary:
A few places in the library seem to behave unexpectedly when the library
is compiled or used with exceptions disabled. For example, not throwing
an exception when a pointer is NULL can lead us to dereference the pointer
later on, which is UB. This patch fixes such occurences.

It's hard to tell whether there are other places where the no-exceptions
mode misbehaves like this, because the replacement for throwing an
exception does not always seem to be abort()ing, but at least this
patch will improve the situation somewhat.

See http://lists.llvm.org/pipermail/libcxx-dev/2019-January/000172.html

Reviewers: mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Differential Revision: https://reviews.llvm.org/D57761

llvm-svn: 353850
2019-02-12 16:06:02 +00:00
..
benchmarks [CMake] Use correct visibility for linked libraries in CMake 2019-01-30 23:18:05 +00:00
cmake Support tests in freestanding 2019-02-04 20:31:13 +00:00
docs [CMake] Support compiler-rt builtins library in tests 2019-02-05 19:50:47 +00:00
fuzzing Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
include [libc++] Avoid UB in the no-exceptions mode in a few places 2019-02-12 16:06:02 +00:00
lib Make LIBCXX_STANDARD_VER configurable 2019-02-10 18:27:55 +00:00
src [libc++] Avoid UB in the no-exceptions mode in a few places 2019-02-12 16:06:02 +00:00
test [libc++] Avoid UB in the no-exceptions mode in a few places 2019-02-12 16:06:02 +00:00
utils Make the sym_diff utilities more useful. 2019-02-12 00:00:43 +00:00
www Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
.arcconfig [libcxx] Set up .arcconfig to point to new Diffusion CXX repository 2017-12-04 17:55:28 +00:00
.clang-format Make clang-format use C++03 syntax 2017-04-15 02:45:43 +00:00
.gitignore
CMakeLists.txt [CMake] Avoid passing -rtlib=compiler-rt when using compiler-rt 2019-02-12 01:35:29 +00:00
CREDITS.TXT Try again, this time with the correct address 2017-12-29 19:26:53 +00:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
NOTES.TXT Reland "Use custom command and target to install libc++ headers" 2018-06-12 03:10:02 +00:00
TODO.TXT Add list of filesystem NB comments to TODO.TXT so they can be tracked separately 2017-03-06 21:23:36 +00:00
appveyor-reqs-install.cmd Update LLVM version used on Appveyor bot, remove MSVC 2015 bot 2018-10-30 21:23:31 +00:00
appveyor.yml Update LLVM version used on Appveyor bot, remove MSVC 2015 bot 2018-10-30 21:23:31 +00:00