• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_analyze_cc1 -std=c++11 -analyzer-checker=alpha.clone.CloneChecker -analyzer-config alpha.clone.CloneChecker:MinimumCloneComplexity=10 -verify %s
2 
3 // This tests if sub-sequences can match with normal sequences.
4 
5 void log2(int a);
6 void log();
7 
max(int a,int b)8 int max(int a, int b) {
9   log2(a);
10   log(); // expected-warning{{Duplicate code detected}}
11   if (a > b)
12     return a;
13   return b;
14 }
15 
maxClone(int a,int b)16 int maxClone(int a, int b) {
17   log(); // expected-note{{Similar code here}}
18   if (a > b)
19     return a;
20   return b;
21 }
22 
23 // Functions below are not clones and should not be reported.
24 
foo(int a,int b)25 int foo(int a, int b) { // no-warning
26   return a + b;
27 }
28