]> granicus.if.org Git - clang/commit
[analyzer] Bug identification
authorGabor Horvath <xazax.hun@gmail.com>
Thu, 22 Oct 2015 11:53:04 +0000 (11:53 +0000)
committerGabor Horvath <xazax.hun@gmail.com>
Thu, 22 Oct 2015 11:53:04 +0000 (11:53 +0000)
commit61a690a04fb2230e90a9c1563d11358581acbc44
tree54e5c9291aaef563fe1e3c5dadb5811330f11803
parent1c1b323327163c0724e9f6287371c38621570afa
[analyzer] Bug identification

This patch adds hashes to the plist and html output to be able to identfy bugs
for suppressing false positives or diff results against a baseline. This hash
aims to be resilient for code evolution and is usable to identify bugs in two
different snapshots of the same software. One missing piece however is a
permanent unique identifier of the checker that produces the warning. Once that
issue is resolved, the hashes generated are going to change. Until that point
this feature is marked experimental, but it is suitable for early adoption.

Differential Revision: http://reviews.llvm.org/D10305

Original patch by: Bence Babati!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@251011 91177308-0d34-0410-b5e6-96231b3b80d8
40 files changed:
include/clang/StaticAnalyzer/Core/IssueHash.h [new file with mode: 0644]
lib/StaticAnalyzer/Checkers/Checkers.td
lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
lib/StaticAnalyzer/Core/CMakeLists.txt
lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
lib/StaticAnalyzer/Core/IssueHash.cpp [new file with mode: 0644]
lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
test/Analysis/MismatchedDeallocator-path-notes.cpp
test/Analysis/NewDelete-path-notes.cpp
test/Analysis/bug_hash_test.cpp [new file with mode: 0644]
test/Analysis/bug_hash_test.m [new file with mode: 0644]
test/Analysis/conditional-path-notes.c
test/Analysis/cxx-for-range.cpp
test/Analysis/diagnostics/deref-track-symbolic-region.c
test/Analysis/diagnostics/report-issues-within-main-file.cpp
test/Analysis/diagnostics/undef-value-caller.c
test/Analysis/diagnostics/undef-value-param.c
test/Analysis/diagnostics/undef-value-param.m
test/Analysis/edges-new.mm
test/Analysis/generics.m
test/Analysis/inline-plist.c
test/Analysis/inline-unique-reports.c
test/Analysis/inlining/eager-reclamation-path-notes.c
test/Analysis/inlining/eager-reclamation-path-notes.cpp
test/Analysis/inlining/path-notes.c
test/Analysis/inlining/path-notes.cpp
test/Analysis/inlining/path-notes.m
test/Analysis/lambda-notes.cpp
test/Analysis/malloc-plist.c
test/Analysis/method-call-path-notes.cpp
test/Analysis/model-file.cpp
test/Analysis/null-deref-path-notes.m
test/Analysis/objc-arc.m
test/Analysis/plist-macros.cpp
test/Analysis/plist-output-alternate.m
test/Analysis/plist-output.m
test/Analysis/retain-release-path-notes-gc.m
test/Analysis/retain-release-path-notes.m
test/Analysis/unix-fns.c
utils/analyzer/CmpRuns.py