https://gcc.gnu.org/g:4d2cd304714fddc8a995fc0311090fce7e70c122

commit r15-5166-g4d2cd304714fddc8a995fc0311090fce7e70c122
Author: Kito Cheng <kito.ch...@sifive.com>
Date:   Wed Nov 6 17:35:46 2024 +0800

    libsanitizer: Improve FrameIsInternal
    
    `FrameIsInternal` is a function that improves report quality by filtering 
out
    internal functions from the sanitizer, allowing it to point to a more 
precise
    root cause. However, the current checks are mostly specific to compiler-rt,
    so we are adding a few more rules to enhance the filtering for libsanitizer 
as
    well.

Diff:
---
 libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp 
b/libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp
index 351e00db6fb2..80ae31e938ae 100644
--- a/libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp
+++ b/libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cpp
@@ -41,10 +41,18 @@ static bool FrameIsInternal(const SymbolizedStack *frame) {
     return true;
   if (file && internal_strstr(file, "\\compiler-rt\\lib\\"))
     return true;
+  if (file && internal_strstr(file, "\\libsanitizer\\"))
+    return true;
   if (module && (internal_strstr(module, "libclang_rt.")))
     return true;
   if (module && (internal_strstr(module, "clang_rt.")))
     return true;
+  if (module && (internal_strstr(module, "libtsan.")
+                || internal_strstr(module, "libhwasan.")
+                || internal_strstr(module, "liblsan.")
+                || internal_strstr(module, "libasan.")
+                || internal_strstr(module, "libubsan.")))
+    return true;
   return false;
 }

Reply via email to