|  | // 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 |