// RUN: %clang_analyze_cc1 -analyzer-output=plist -analyzer-config notes-as-events=true -o %t.plist -std=c++11 -analyzer-checker=alpha.clone.CloneChecker -analyzer-config alpha.clone.CloneChecker:MinimumCloneComplexity=10 -verify %s
// RUN: FileCheck --input-file=%t.plist %s
void log();
int max(int a, int b) { // expected-warning{{Duplicate code detected}}
log();
if (a > b)
return a;
return b;
}
int maxClone(int a, int b) { // no-note (converted into event)
log();
if (a > b)
return a;
return b;
}
// CHECK: diagnostics
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: path
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: kindevent
// CHECK-NEXT: location
// CHECK-NEXT:
// CHECK-NEXT: line13
// CHECK-NEXT: col28
// CHECK-NEXT: file0
// CHECK-NEXT:
// CHECK-NEXT: ranges
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: line13
// CHECK-NEXT: col28
// CHECK-NEXT: file0
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: line18
// CHECK-NEXT: col1
// CHECK-NEXT: file0
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: depth0
// CHECK-NEXT: extended_message
// CHECK-NEXT: Similar code here
// CHECK-NEXT: message
// CHECK-NEXT: Similar code here
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: kindevent
// CHECK-NEXT: location
// CHECK-NEXT:
// CHECK-NEXT: line6
// CHECK-NEXT: col23
// CHECK-NEXT: file0
// CHECK-NEXT:
// CHECK-NEXT: ranges
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: line6
// CHECK-NEXT: col23
// CHECK-NEXT: file0
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: line11
// CHECK-NEXT: col1
// CHECK-NEXT: file0
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: depth0
// CHECK-NEXT: extended_message
// CHECK-NEXT: Duplicate code detected
// CHECK-NEXT: message
// CHECK-NEXT: Duplicate code detected
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: descriptionDuplicate code detected
// CHECK-NEXT: categoryCode clone
// CHECK-NEXT: typeExact code clone
// CHECK-NEXT: check_namealpha.clone.CloneChecker
// CHECK-NEXT:
// CHECK-NEXT: issue_hash_content_of_line_in_context3d15184f38c5fa57e479b744fe3f5035
// CHECK-NEXT: location
// CHECK-NEXT:
// CHECK-NEXT: line6
// CHECK-NEXT: col23
// CHECK-NEXT: file0
// CHECK-NEXT:
// CHECK-NEXT:
// CHECK-NEXT: