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