// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-inline-max-stack-depth=3 -analyzer-config ipa-always-inline-size=3 -verify %s void clang_analyzer_eval(int); int nested5() { if (5 < 3) return 0; else if (3 == 3) return 0; return 0; } int nested4() { return nested5(); } int nested3() { return nested4(); } int nested2() { return nested3(); } int nested1() { return nested2(); } void testNested() { clang_analyzer_eval(nested1() == 0); // expected-warning{{TRUE}} } // Make sure we terminate a recursive path. int recursive() { return recursive(); } int callRecursive() { return recursive(); } int mutuallyRecursive1(); int mutuallyRecursive2() { return mutuallyRecursive1(); } int mutuallyRecursive1() { return mutuallyRecursive2(); } int callMutuallyRecursive() { return mutuallyRecursive1(); } |