From fe1555607716899745fc53c503193fff1b7bbe15 Mon Sep 17 00:00:00 2001 From: Sterling Augustine Date: Mon, 19 Apr 2021 10:56:25 -0700 Subject: [PATCH] Support leak sanitizer in libcxx. Support leak sanitizer in libcxx. Simple addition for leak checking when running the libcxx testsuite. Differential Revision: https://reviews.llvm.org/D100775 --- libcxx/test/libcxx/gdb/gdb_pretty_printer_test.py | 17 ----------------- libcxx/utils/libcxx/test/config.py | 2 ++ 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.py b/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.py index 4621e63..b9d0037 100644 --- a/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.py +++ b/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.py @@ -37,23 +37,6 @@ class CheckResult(gdb.Command): compare_frame = gdb.newest_frame().older() testcase_frame = compare_frame.older() test_loc = testcase_frame.find_sal() - - expectation_val = compare_frame.read_var("expectation") - check_literal = expectation_val.string(encoding="utf-8") - - # Heuristic to determine if libc++ itself has debug - # info. If it doesn't, then anything normally homed there - # won't be found, and the printer will error. We don't - # want to fail the test in this case--the printer itself - # is probably fine, or at least we can't tell. - if check_literal.startswith("std::shared_ptr"): - shared_ptr = compare_frame.read_var("value") - if not "__shared_owners_" in shared_ptr.type.fields(): - print("IGNORED (no debug info in libc++): " + - test_loc.symtab.filename + ":" + - str(test_loc.line)) - return - # Use interactive commands in the correct context to get the pretty # printed version diff --git a/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py index 54e67ec..c2939cf 100644 --- a/libcxx/utils/libcxx/test/config.py +++ b/libcxx/utils/libcxx/test/config.py @@ -526,6 +526,8 @@ class Configuration(object): self.config.available_features.add('sanitizer-new-delete') elif san == 'DataFlow': self.cxx.flags += ['-fsanitize=dataflow'] + elif san == 'Leaks': + self.cxx.link_flags += ['-fsanitize=leaks'] else: self.lit_config.fatal('unsupported value for ' 'use_sanitizer: {0}'.format(san)) -- 2.7.4