summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-tidy/ClangTidy.cpp3
-rw-r--r--clang-tools-extra/test/clang-tidy/static-analyzer.cpp13
2 files changed, 13 insertions, 3 deletions
diff --git a/clang-tools-extra/clang-tidy/ClangTidy.cpp b/clang-tools-extra/clang-tidy/ClangTidy.cpp
index f78953feb4c..aec2d98a2f7 100644
--- a/clang-tools-extra/clang-tidy/ClangTidy.cpp
+++ b/clang-tools-extra/clang-tidy/ClangTidy.cpp
@@ -71,7 +71,8 @@ public:
E = Diags.end();
I != E; ++I) {
const ento::PathDiagnostic *PD = *I;
- StringRef CheckName(AnalyzerCheckNamePrefix);
+ SmallString<64> CheckName(AnalyzerCheckNamePrefix);
+ CheckName += PD->getCheckName();
addRanges(Context.diag(CheckName, PD->getLocation().asLocation(),
PD->getShortDescription()),
PD->path.back()->getRanges());
diff --git a/clang-tools-extra/test/clang-tidy/static-analyzer.cpp b/clang-tools-extra/test/clang-tidy/static-analyzer.cpp
index 8e14773847a..66f56c758ce 100644
--- a/clang-tools-extra/test/clang-tidy/static-analyzer.cpp
+++ b/clang-tools-extra/test/clang-tidy/static-analyzer.cpp
@@ -1,8 +1,17 @@
-// RUN: clang-tidy %s -checks='clang-analyzer-cplusplus' -- | FileCheck %s
+// RUN: clang-tidy %s -checks='clang-analyzer-' -- | FileCheck %s
+extern void *malloc(unsigned long);
+extern void free(void *);
void f() {
int *p = new int(42);
delete p;
delete p;
- // CHECK: warning: Attempt to free released memory
+ // CHECK: warning: Attempt to free released memory [clang-analyzer-cplusplus.NewDelete]
+}
+
+void g() {
+ void *q = malloc(132);
+ free(q);
+ free(q);
+ // CHECK: warning: Attempt to free released memory [clang-analyzer-unix.Malloc]
}
OpenPOWER on IntegriCloud