From 0ebaa9b8c46e65328c06abffee36daf0cb125995 Mon Sep 17 00:00:00 2001 From: Simon Martin Date: Fri, 5 Jun 2015 23:57:42 +0200 Subject: [PATCH] Ticket #6463 (dupe of #6680): Added test case. --- test/testuninitvar.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index 31ab51497..8ace28f30 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -2871,7 +2871,7 @@ private: ASSERT_EQUALS("[test.cpp:3]: (error) Uninitialized variable: Factory\n", errout.str()); } - void uninitvar_operator() { // Ticket #6680 + void uninitvar_operator() { // Ticket #6463, #6680 checkUninitVar2("struct Source { Source& operator>>(int& i) { i = 0; return *this; } };\n" "struct Sink { int v; };\n" "Source foo;\n" @@ -2887,6 +2887,13 @@ private: " foo >> s2.v >> n;\n" // Initialized by operator>> "}\n"); ASSERT_EQUALS("[test.cpp:6]: (error) Uninitialized struct member: s.v\n", errout.str()); + + checkUninitVar2("struct Fred { int a; };\n" + "void foo() {\n" + " Fred fred;\n" + " std::cin >> fred.a;\n" + "}"); + ASSERT_EQUALS("", errout.str()); } // Handling of function calls