================
@@ -280,6 +280,14 @@
 // - `_LIBCPP_ASSERT_NON_OVERLAPPING_RANGES` -- for functions that take 
several ranges as arguments, checks that the
 //   given ranges do not overlap.
 //
+// - `_LIBCPP_ASSERT_VALID_DEALLOCATION` -- checks that an attempt to 
deallocate memory is valid (e.g. the given object
+//   was allocated by the given allocator). Violating this category typically 
results in a memory leak.
+//
+// - `_LIBCPP_ASSERT_VALID_EXTERNAL_API_CALL` -- checks that a call to an 
external API (e.g. a syscall) doesn't fail in
+//   an unexpected manner. This includes triggering documented cases of 
undefined behavior in an external library (like
+//   attempting to unlock an unlocked mutex in pthreads). We generally don't 
expect these failures to compromize memory
+//   safety or otherwise create an immediate security issue.
+//
----------------
mordante wrote:

That probably happens after branching LLVM 18. After branching we can always 
backport documentation changes. So it would be great if we can get better 
documentation in LLVM 18.

https://github.com/llvm/llvm-project/pull/77164
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to