diff --git a/lib/preprocessor.cpp b/lib/preprocessor.cpp index 8fe715db864..11bf0c376a8 100644 --- a/lib/preprocessor.cpp +++ b/lib/preprocessor.cpp @@ -1067,10 +1067,10 @@ void Preprocessor::dump(std::ostream &out) const for (const simplecpp::MacroUsage ¯oUsage: mMacroUsage) { out << " " << std::endl; for (const simplecpp::IfCond &ifCond: mIfCond) { out << " @@ -3204,6 +3206,30 @@ class TestPreprocessor : public TestFixture { const char code[] = "#pragma asm\n"; ASSERT_THROW_INTERNAL(getcodeforcfg(settingsDefault, *this, code, "", "test.cpp"), InternalError::SYNTAX); } + + void dumpPreprocessor() { + const char code[] = "#if M == 0\n" + "#endif\n;\n"; + std::vector files; + simplecpp::OutputList outputList; + + Settings settings; + settings.relativePaths = true; + settings.basePaths.emplace_back("/some/path"); + + simplecpp::TokenList tokens1(code, files, "/some/path/test.cpp", {}, &outputList); + Preprocessor preprocessor(tokens1, settings, *this, Standards::Language::CPP); + (void)preprocessor.preprocess("", files, outputList); + (void)preprocessor.reportOutput(outputList, true); + + std::ostringstream ostr; + preprocessor.dump(ostr); + ASSERT_EQUALS( + " \n" + " \n" + " \n", + ostr.str()); + } }; REGISTER_TEST(TestPreprocessor)