23 lines
		
	
	
		
			405 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			405 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -analyze -analyzer-checker=core,debug.ExprInspection -verify %s
 | 
						|
// expected-no-diagnostics
 | 
						|
struct X {
 | 
						|
  int *p;
 | 
						|
  int zero;
 | 
						|
  void foo () {
 | 
						|
    reset(p - 1);
 | 
						|
  }
 | 
						|
  void reset(int *in) {
 | 
						|
    while (in != p) // Loop must be entered.
 | 
						|
      zero = 1;
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
int test (int *in) {
 | 
						|
  X littleX;
 | 
						|
  littleX.zero = 0;
 | 
						|
  littleX.p = in;
 | 
						|
  littleX.foo();
 | 
						|
  return 5/littleX.zero; // no-warning
 | 
						|
}
 | 
						|
 |