From 6c8356579b20a6522d39649bcaaaf77e8e324daf Mon Sep 17 00:00:00 2001 From: Tacet Date: Thu, 9 May 2024 18:40:15 +0200 Subject: [PATCH] [libc++][ASan] Fix std::basic_string trait type (#91590) Addresses the comment: https://github.com/llvm/llvm-project/pull/79536#discussion_r1593652240 Changes the type to `void` instead of `false_type`. The value is used here: https://github.com/llvm/llvm-project/blob/6f1013a5b3f92d3ae6e378d6706584a2a44e6964/libcxx/include/__type_traits/is_trivially_relocatable.h#L35-L38 --- libcxx/include/string | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libcxx/include/string b/libcxx/include/string index 8f629d8bf13c80..1db803e822d727 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -741,8 +741,8 @@ public: // is kept inside objects memory (short string optimization), instead of in allocated // external memory. In such cases, the destructor is responsible for unpoisoning // the memory to avoid triggering false positives. - // Therefore it's crucial to ensure the destructor is called - using __trivially_relocatable = false_type; + // Therefore it's crucial to ensure the destructor is called. + using __trivially_relocatable = void; #else using __trivially_relocatable = __conditional_t< __libcpp_is_trivially_relocatable::value && __libcpp_is_trivially_relocatable::value,