1*085dcc82SBalázs Kéri // RUN: %clang_analyze_cc1 -analyzer-checker=alpha.clone.CloneChecker -analyzer-config alpha.clone.CloneChecker:MinimumCloneComplexity=5 -verify %s 2*085dcc82SBalázs Kéri 3*085dcc82SBalázs Kéri // This test should verify that there is no crash if the detected clone range 4*085dcc82SBalázs Kéri // starts in a file and ends in a different file. 5*085dcc82SBalázs Kéri f_end(int i)6*085dcc82SBalázs Kérivoid f_end(int i) { 7*085dcc82SBalázs Kéri if (i == 10) // expected-warning{{Duplicate code detected}} 8*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-end.inc" 9*085dcc82SBalázs Kéri if (i == 10) // expected-note{{Similar code here}} 10*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-end.inc" 11*085dcc82SBalázs Kéri } 12*085dcc82SBalázs Kéri f_begin(int i)13*085dcc82SBalázs Kérivoid f_begin(int i) { 14*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-begin-1.inc" 15*085dcc82SBalázs Kéri if (true) {} 16*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-begin-2.inc" 17*085dcc82SBalázs Kéri if (true) {} 18*085dcc82SBalázs Kéri } 19*085dcc82SBalázs Kéri 20*085dcc82SBalázs Kéri #define X while (true) {} 21*085dcc82SBalázs Kéri f1m(int i)22*085dcc82SBalázs Kérivoid f1m(int i) { 23*085dcc82SBalázs Kéri if (i == 10) // expected-warning{{Duplicate code detected}} 24*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-end-macro.inc" 25*085dcc82SBalázs Kéri if (i == 10) // expected-note{{Similar code here}} 26*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-end-macro.inc" 27*085dcc82SBalázs Kéri } 28*085dcc82SBalázs Kéri 29*085dcc82SBalázs Kéri #undef X 30*085dcc82SBalázs Kéri #define X if (i == 10) 31*085dcc82SBalázs Kéri f2m(int i)32*085dcc82SBalázs Kérivoid f2m(int i) { 33*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-begin-macro-1.inc" 34*085dcc82SBalázs Kéri while (true) { i = 1; } 35*085dcc82SBalázs Kéri #include "Inputs/clone-begin-end-different-file-begin-macro-2.inc" 36*085dcc82SBalázs Kéri while (true) { i = 1; } 37*085dcc82SBalázs Kéri } 38