forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			23 lines
		
	
	
		
			687 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			687 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_analyze_cc1 -analyzer-checker=core -verify %s
 | |
| 
 | |
| // expected-no-diagnostics
 | |
| 
 | |
| #include "Inputs/no-store-suppression.h"
 | |
| 
 | |
| using namespace std;
 | |
| 
 | |
| namespace value_uninitialized_after_stream_shift {
 | |
| void use(char c);
 | |
| 
 | |
| // Technically, it is absolutely necessary to check the status of cin after
 | |
| // read before using the value that just read from it. Practically, we don't
 | |
| // really care unless we eventually come up with a special security check
 | |
| // for just that purpose. Static Analyzer shouldn't be yelling at every person's
 | |
| // third program in their C++ 101.
 | |
| void foo() {
 | |
|   char c;
 | |
|   std::cin >> c;
 | |
|   use(c); // no-warning
 | |
| }
 | |
| } // namespace value_uninitialized_after_stream_shift
 |