From b580c0e019826074a22e2676dd0889a57d8558fb Mon Sep 17 00:00:00 2001 From: Vitaly Buka Date: Tue, 19 Apr 2022 18:42:17 -0700 Subject: [PATCH] [msan] Update Use-after-destruction documentation Reviewed By: kda, eugenis Differential Revision: https://reviews.llvm.org/D124058 --- clang/docs/MemorySanitizer.rst | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/clang/docs/MemorySanitizer.rst b/clang/docs/MemorySanitizer.rst index 5f387cad93dc..bcc6cc808e8b 100644 --- a/clang/docs/MemorySanitizer.rst +++ b/clang/docs/MemorySanitizer.rst @@ -162,17 +162,16 @@ not intermediate stores. Use-after-destruction detection =============================== -You can enable experimental use-after-destruction detection in MemorySanitizer. -After invocation of the destructor, the object will be considered no longer -readable, and using underlying memory will lead to error reports in runtime. -Refer to the standard for `lifetime `_ definition. +MemorySanitizer includes use-after-destruction detection. After invocation of +the destructor, the object will be considered no longer readable, and using +underlying memory will lead to error reports in runtime. Refer to the standard +for `lifetime `_ definition. -This feature is still experimental, in order to enable it at runtime you need -to: +This feature can be disabled with either: -#. Pass addition Clang option ``-fsanitize-memory-use-after-dtor`` during +#. Pass addition Clang option ``-fno-sanitize-memory-use-after-dtor`` during compilation. -#. Set environment variable `MSAN_OPTIONS=poison_in_dtor=1` before running +#. Set environment variable `MSAN_OPTIONS=poison_in_dtor=0` before running the program. Handling external code