1*561f0de6SRaphael Isemann // RUN: %clang_analyze_cc1 -fcxx-exceptions -std=c++1z -analyzer-checker=alpha.clone.CloneChecker -analyzer-config alpha.clone.CloneChecker:MinimumCloneComplexity=10 -verify %s 278692ea5SArtem Dergachev 378692ea5SArtem Dergachev // expected-no-diagnostics 478692ea5SArtem Dergachev foo1(int x)578692ea5SArtem Dergachevbool foo1(int x) { 678692ea5SArtem Dergachev if (x > 0) 778692ea5SArtem Dergachev return false; 878692ea5SArtem Dergachev else if (x < 0) 978692ea5SArtem Dergachev try { x--; } catch (int i) {} 1078692ea5SArtem Dergachev return true; 1178692ea5SArtem Dergachev } 1278692ea5SArtem Dergachev 1378692ea5SArtem Dergachev // Uses parenthesis instead of type foo2(int x)1478692ea5SArtem Dergachevbool foo2(int x) { 1578692ea5SArtem Dergachev if (x > 0) 1678692ea5SArtem Dergachev return false; 1778692ea5SArtem Dergachev else if (x < 0) 1878692ea5SArtem Dergachev try { x--; } catch (...) {} 1978692ea5SArtem Dergachev return true; 2078692ea5SArtem Dergachev } 2178692ea5SArtem Dergachev 2278692ea5SArtem Dergachev // Catches a different type (long instead of int) foo3(int x)2378692ea5SArtem Dergachevbool foo3(int x) { 2478692ea5SArtem Dergachev if (x > 0) 2578692ea5SArtem Dergachev return false; 2678692ea5SArtem Dergachev else if (x < 0) 2778692ea5SArtem Dergachev try { x--; } catch (long i) {} 2878692ea5SArtem Dergachev return true; 2978692ea5SArtem Dergachev } 30