// RUN: %clang_analyze_cc1 -fcxx-exceptions -std=c++1z -analyzer-checker=alpha.clone.CloneChecker -analyzer-config alpha.clone.CloneChecker:MinimumCloneComplexity=10 -verify %s

// expected-no-diagnostics

bool foo1(int x) {
  if (x > 0)
    return false;
  else if (x < 0)
    try { x--; } catch (int i) {}
  return true;
}

// Uses parenthesis instead of type
bool foo2(int x) {
  if (x > 0)
    return false;
  else if (x < 0)
    try { x--; } catch (...) {}
  return true;
}

// Catches a different type (long instead of int)
bool foo3(int x) {
  if (x > 0)
    return false;
  else if (x < 0)
    try { x--; } catch (long i) {}
  return true;
}
