From b33b44bd128698606047009627b0d62b3f5fbf1b Mon Sep 17 00:00:00 2001 From: Advenam Tacet Date: Tue, 9 Jan 2024 00:45:34 +0100 Subject: [PATCH] Revert "[ASan][libc++] String annotations optimizations fix with lambda (#76200)" This reverts commit c68a9d25e99a096f6862fc4b57dd380a21245d31. --- libcxx/include/string | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcxx/include/string b/libcxx/include/string index e2be53eaee241..c676182fba8ba 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -922,7 +922,7 @@ public: // Turning off ASan instrumentation for variable initialization with _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS // does not work consistently during initialization of __r_, so we instead unpoison __str's memory manually first. // __str's memory needs to be unpoisoned only in the case where it's a short string. - : __r_([](basic_string &__s){ if(!__s.__is_long()) __s.__annotate_delete(); return std::move(__s.__r_); }(__str)) { + : __r_(((__str.__is_long() ? 0 : (__str.__annotate_delete(), 0)), std::move(__str.__r_))) { __str.__r_.first() = __rep(); __str.__annotate_new(0); if (!__is_long())