[libc++] Audit all uses of _LIBCPP_ASSERT and _LIBCPP_DEBUG_ASSERT
authorLouis Dionne <ldionne.2@gmail.com>
Thu, 24 Mar 2022 13:03:56 +0000 (09:03 -0400)
committerLouis Dionne <ldionne.2@gmail.com>
Thu, 24 Mar 2022 17:13:21 +0000 (13:13 -0400)
commitc87c8917e3662532f0aa75a91caea857c093f8f4
treed68ad02fe5cc391667af9e78a416d4552d380277
parentaca96480784b5373ad7229816b00297690354208
[libc++] Audit all uses of _LIBCPP_ASSERT and _LIBCPP_DEBUG_ASSERT

I audited all uses of _LIBCPP_ASSERT to make sure that we only used it
for "basic assertions", i.e. assertions with constant-time conditions.
I also audited all uses of _LIBCPP_DEBUG_ASSERT to make sure we used it
only for debug-mode assertions, and in one case had to change for
_LIBCPP_ASSERT instead.

As a fly-by, I also changed a couple of tests against nullptr or 0 to
be more explicit.

After this patch, all uses of _LIBCPP_ASSERT should be with constant-time
conditions, and all uses of _LIBCPP_DEBUG_ASSERT should be with conditions
that we only want to check when the debug mode is enabled.

Differential Revision: https://reviews.llvm.org/D122395
libcxx/include/__hash_table
libcxx/include/__memory/construct_at.h
libcxx/include/list
libcxx/include/unordered_set
libcxx/src/filesystem/filesystem_common.h