diff --git a/lib/checkio.cpp b/lib/checkio.cpp index 7b6c0d5df..98cdb53d6 100644 --- a/lib/checkio.cpp +++ b/lib/checkio.cpp @@ -267,7 +267,8 @@ void CheckIO::checkFileUsage() f.append_mode = Filepointer::APPEND_EX; else f.append_mode = Filepointer::APPEND; - } + } else + f.append_mode = Filepointer::UNKNOWN_AM; f.mode_indent = indent; break; case Filepointer::POSITIONING: diff --git a/test/testio.cpp b/test/testio.cpp index a4f8a0e05..1e2e00c43 100644 --- a/test/testio.cpp +++ b/test/testio.cpp @@ -637,6 +637,14 @@ private: " fflush(f);\n" "}"); ASSERT_EQUALS("", errout.str()); // #5578 + + check("void foo() {\n" + " FILE* f = fopen(\"\", \"a\");\n" + " fclose(f);\n" + " f = fopen(\"\", \"r\");\n" + " fseek(f, 0, SEEK_SET);\n" + "}"); + ASSERT_EQUALS("", errout.str()); // #6566 } void fflushOnInputStream() {