forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			49 lines
		
	
	
		
			875 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			875 B
		
	
	
	
		
			C
		
	
	
	
// RUN: %clang_cc1 -analyze -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();
 | 
						|
}
 |