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