Files
clang-p2996/clang/test/Analysis/copypaste/objc-methods.m
Artem Dergachev ba816326f3 [analyzer] Add basic capabilities to detect source code clones.
This patch adds the CloneDetector class which allows searching source code
for clones.

For every statement or group of statements within a compound statement,
CloneDetector computes a hash value, and finds clones by detecting
identical hash values.

This initial patch only provides a simple hashing mechanism
that hashes the kind of each sub-statement.

This patch also adds CloneChecker - a simple static analyzer checker
that uses CloneDetector to report copy-pasted code.

Patch by Raphael Isemann!

Differential Revision: https://reviews.llvm.org/D20795

llvm-svn: 276782
2016-07-26 18:13:12 +00:00

28 lines
569 B
Objective-C

// RUN: %clang_cc1 -analyze -Wno-objc-root-class -analyzer-checker=alpha.clone.CloneChecker -verify %s
// This tests if we search for clones in Objective-C methods.
@interface A
- (int) setOk : (int) a : (int) b;
@end
@implementation A
- (int) setOk : (int) a : (int) b { // expected-warning{{Detected code clone.}}
if (a > b)
return a;
return b;
}
@end
@interface B
- (int) setOk : (int) a : (int) b;
@end
@implementation B
- (int) setOk : (int) a : (int) b { // expected-note{{Related code clone is here.}}
if (a > b)
return a;
return b;
}
@end