Skip to content

Commit 55e3bae

Browse files
committed
moved some --debug --verbose logic out of Tokenizer
1 parent ca83f56 commit 55e3bae

3 files changed

Lines changed: 61 additions & 5 deletions

File tree

cli/cmdlineparser.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
415415

416416
bool def = false;
417417
bool maxconfigs = false;
418+
bool debug = false;
418419

419420
ImportProject::Type projectType = ImportProject::Type::NONE;
420421
ImportProject project;
@@ -641,7 +642,7 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
641642
// Show --debug output after the first simplifications
642643
else if (std::strcmp(argv[i], "--debug") == 0 ||
643644
std::strcmp(argv[i], "--debug-normal") == 0)
644-
mSettings.debugnormal = true;
645+
debug = true;
645646

646647
// Show debug warnings for lookup for configuration files
647648
else if (std::strcmp(argv[i], "--debug-lookup") == 0)
@@ -1572,10 +1573,17 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
15721573

15731574
if (mSettings.force)
15741575
mSettings.maxConfigs = INT_MAX;
1575-
15761576
else if ((def || mSettings.preprocessOnly) && !maxconfigs)
15771577
mSettings.maxConfigs = 1U;
15781578

1579+
if (debug) {
1580+
mSettings.debugnormal = true;
1581+
if (mSettings.verbose) {
1582+
mSettings.debugast = true;
1583+
mSettings.debugsymdb = true;
1584+
}
1585+
}
1586+
15791587
if (mSettings.jobs > 1 && mSettings.buildDir.empty()) {
15801588
// TODO: bail out instead?
15811589
if (mSettings.checks.isEnabled(Checks::unusedFunction))

lib/tokenize.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5941,7 +5941,6 @@ bool Tokenizer::simplifyTokenList1(const char FileName[])
59415941
}
59425942
//---------------------------------------------------------------------------
59435943

5944-
// TODO: do not depend on --verbose
59455944
void Tokenizer::printDebugOutput(std::ostream &out) const
59465945
{
59475946
if (!list.front())
@@ -5962,11 +5961,12 @@ void Tokenizer::printDebugOutput(std::ostream &out) const
59625961
if (mSymbolDatabase) {
59635962
if (xml)
59645963
mSymbolDatabase->printXml(out);
5965-
else if (mSettings.debugsymdb || (mSettings.debugnormal && mSettings.verbose))
5964+
else if (mSettings.debugsymdb)
59665965
mSymbolDatabase->printOut("Symbol database");
59675966
}
59685967

5969-
if (mSettings.debugast || (mSettings.debugnormal && mSettings.verbose))
5968+
// TODO: do not depend on --verbose
5969+
if (mSettings.debugast)
59705970
list.front()->printAst(mSettings.verbose, xml, list.getFiles(), out);
59715971

59725972
if (mSettings.debugnormal || mSettings.debugvalueflow)

test/testcmdlineparser.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,10 @@ class TestCmdlineParser : public TestFixture {
463463
TEST_CASE(debugSymdb);
464464
TEST_CASE(debugAst);
465465
TEST_CASE(debugValueflow);
466+
TEST_CASE(debugNormal);
467+
TEST_CASE(debugNormalVerbose);
468+
TEST_CASE(debug);
469+
TEST_CASE(debugVerbose);
466470

467471
TEST_CASE(ignorepaths1);
468472
TEST_CASE(ignorepaths2);
@@ -3186,6 +3190,50 @@ class TestCmdlineParser : public TestFixture {
31863190
ASSERT_EQUALS(true, settings->debugvalueflow);
31873191
}
31883192

3193+
void debugNormal() {
3194+
REDIRECT;
3195+
const char * const argv[] = {"cppcheck", "--debug-normal", "file.cpp"};
3196+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parseFromArgs(argv));
3197+
ASSERT_EQUALS(true, settings->debugnormal);
3198+
ASSERT_EQUALS(false, settings->debugSimplified);
3199+
ASSERT_EQUALS(false, settings->debugvalueflow);
3200+
ASSERT_EQUALS(false, settings->debugast);
3201+
ASSERT_EQUALS(false, settings->debugsymdb);
3202+
}
3203+
3204+
void debugNormalVerbose() {
3205+
REDIRECT;
3206+
const char * const argv[] = {"cppcheck", "--debug-normal", "--verbose", "file.cpp"};
3207+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parseFromArgs(argv));
3208+
ASSERT_EQUALS(true, settings->debugnormal);
3209+
ASSERT_EQUALS(false, settings->debugSimplified);
3210+
ASSERT_EQUALS(false, settings->debugvalueflow);
3211+
ASSERT_EQUALS(true, settings->debugast);
3212+
ASSERT_EQUALS(true, settings->debugsymdb);
3213+
}
3214+
3215+
void debug() {
3216+
REDIRECT;
3217+
const char * const argv[] = {"cppcheck", "--debug", "file.cpp"};
3218+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parseFromArgs(argv));
3219+
ASSERT_EQUALS(true, settings->debugnormal);
3220+
ASSERT_EQUALS(false, settings->debugSimplified);
3221+
ASSERT_EQUALS(false, settings->debugvalueflow);
3222+
ASSERT_EQUALS(false, settings->debugast);
3223+
ASSERT_EQUALS(false, settings->debugsymdb);
3224+
}
3225+
3226+
void debugVerbose() {
3227+
REDIRECT;
3228+
const char * const argv[] = {"cppcheck", "--debug", "--verbose", "file.cpp"};
3229+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Success, parseFromArgs(argv));
3230+
ASSERT_EQUALS(true, settings->debugnormal);
3231+
ASSERT_EQUALS(false, settings->debugSimplified);
3232+
ASSERT_EQUALS(false, settings->debugvalueflow);
3233+
ASSERT_EQUALS(true, settings->debugast);
3234+
ASSERT_EQUALS(true, settings->debugsymdb);
3235+
}
3236+
31893237
void ignorepaths1() {
31903238
REDIRECT;
31913239
const char * const argv[] = {"cppcheck", "-isrc", "file.cpp"};

0 commit comments

Comments
 (0)