From 8ee651d7de366459e94ccb58e51864e41523457d Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Wed, 19 Mar 2014 12:26:33 +0000 Subject: [sanitizer] deadlock detector: a) initial support for suppressions, b) be more robust in case we failed to extract a stack trace for one of the locks git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204225 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/sanitizer_common/sanitizer_suppressions.cc | 4 ++-- lib/sanitizer_common/sanitizer_suppressions.h | 1 + lib/sanitizer_common/tests/sanitizer_suppressions_test.cc | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'lib/sanitizer_common') diff --git a/lib/sanitizer_common/sanitizer_suppressions.cc b/lib/sanitizer_common/sanitizer_suppressions.cc index 5f3d2cee8..87ccf7fca 100644 --- a/lib/sanitizer_common/sanitizer_suppressions.cc +++ b/lib/sanitizer_common/sanitizer_suppressions.cc @@ -20,8 +20,8 @@ namespace __sanitizer { static const char *const kTypeStrings[SuppressionTypeCount] = { - "none", "race", "mutex", "thread", "signal", "leak", "called_from_lib" -}; + "none", "race", "mutex", "thread", + "signal", "leak", "called_from_lib", "deadlock"}; bool TemplateMatch(char *templ, const char *str) { if (str == 0 || str[0] == 0) diff --git a/lib/sanitizer_common/sanitizer_suppressions.h b/lib/sanitizer_common/sanitizer_suppressions.h index 92cb09365..772b9aab5 100644 --- a/lib/sanitizer_common/sanitizer_suppressions.h +++ b/lib/sanitizer_common/sanitizer_suppressions.h @@ -26,6 +26,7 @@ enum SuppressionType { SuppressionSignal, SuppressionLeak, SuppressionLib, + SuppressionDeadlock, SuppressionTypeCount }; diff --git a/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc b/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc index ea8741d4f..93fc8a35d 100644 --- a/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc @@ -67,8 +67,10 @@ TEST(Suppressions, TypeStrings) { CHECK(!internal_strcmp(SuppressionTypeString(SuppressionLeak), "leak")); CHECK(!internal_strcmp(SuppressionTypeString(SuppressionLib), "called_from_lib")); + CHECK( + !internal_strcmp(SuppressionTypeString(SuppressionDeadlock), "deadlock")); // Ensure this test is up-to-date when suppression types are added. - CHECK_EQ(SuppressionTypeCount, 7); + CHECK_EQ(SuppressionTypeCount, 8); } class SuppressionContextTest : public ::testing::Test { -- cgit v1.2.1