From efec16307ccc3c1ed8a5e223cf075e51198e6376 Mon Sep 17 00:00:00 2001 From: Gabor Horvath Date: Thu, 22 Oct 2015 11:53:04 +0000 Subject: [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! llvm-svn: 251011 --- clang/test/Analysis/cxx-for-range.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'clang/test/Analysis/cxx-for-range.cpp') diff --git a/clang/test/Analysis/cxx-for-range.cpp b/clang/test/Analysis/cxx-for-range.cpp index 6278ba56ffe..6be8b78ee81 100644 --- a/clang/test/Analysis/cxx-for-range.cpp +++ b/clang/test/Analysis/cxx-for-range.cpp @@ -597,9 +597,11 @@ void testLoopErrorInRange() { // CHECK-NEXT: categoryLogic error // CHECK-NEXT: typeDereference of null pointer // CHECK-NEXT: check_namecore.NullDereference +// CHECK-NEXT: +// CHECK-NEXT: issue_hash_content_of_line_in_context7c0b35987817cf3d44b88c5349bcd4f2 // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttestLoop -// CHECK-NEXT: issue_hash6 +// CHECK-NEXT: issue_hash_function_offset6 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line12 @@ -823,9 +825,11 @@ void testLoopErrorInRange() { // CHECK-NEXT: categoryLogic error // CHECK-NEXT: typeDereference of null pointer // CHECK-NEXT: check_namecore.NullDereference +// CHECK-NEXT: +// CHECK-NEXT: issue_hash_content_of_line_in_contextf53792d63dffe6176babc00ee455a3e0 // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contextget -// CHECK-NEXT: issue_hash2 +// CHECK-NEXT: issue_hash_function_offset2 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line33 @@ -1098,9 +1102,11 @@ void testLoopErrorInRange() { // CHECK-NEXT: categoryLogic error // CHECK-NEXT: typeDereference of null pointer // CHECK-NEXT: check_namecore.NullDereference +// CHECK-NEXT: +// CHECK-NEXT: issue_hash_content_of_line_in_context7bc3cb8a56be029296ec61f7ee83fc9e // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttestLoopOpaqueCollection -// CHECK-NEXT: issue_hash5 +// CHECK-NEXT: issue_hash_function_offset5 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line42 @@ -1242,9 +1248,11 @@ void testLoopErrorInRange() { // CHECK-NEXT: categoryLogic error // CHECK-NEXT: typeDereference of null pointer // CHECK-NEXT: check_namecore.NullDereference +// CHECK-NEXT: +// CHECK-NEXT: issue_hash_content_of_line_in_contextdc7b457a64bd56c30467c1af44049756 // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttestLoopOpaqueCollection -// CHECK-NEXT: issue_hash11 +// CHECK-NEXT: issue_hash_function_offset11 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line48 @@ -1517,9 +1525,11 @@ void testLoopErrorInRange() { // CHECK-NEXT: categoryLogic error // CHECK-NEXT: typeDereference of null pointer // CHECK-NEXT: check_namecore.NullDereference +// CHECK-NEXT: +// CHECK-NEXT: issue_hash_content_of_line_in_contextf4697ded3a92318349a3969238e05387 // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttestLoopOpaqueIterator -// CHECK-NEXT: issue_hash5 +// CHECK-NEXT: issue_hash_function_offset5 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line77 @@ -1661,9 +1671,11 @@ void testLoopErrorInRange() { // CHECK-NEXT: categoryLogic error // CHECK-NEXT: typeDereference of null pointer // CHECK-NEXT: check_namecore.NullDereference +// CHECK-NEXT: +// CHECK-NEXT: issue_hash_content_of_line_in_context6855b29ad2407a5af43c57f062bc4602 // CHECK-NEXT: issue_context_kindfunction // CHECK-NEXT: issue_contexttestLoopOpaqueIterator -// CHECK-NEXT: issue_hash11 +// CHECK-NEXT: issue_hash_function_offset11 // CHECK-NEXT: location // CHECK-NEXT: // CHECK-NEXT: line83 -- cgit v1.2.3