Skip to content

Commit ccb14ee

Browse files
author
William Jakobsson
committed
Fix-14739
1 parent 504d1d2 commit ccb14ee

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

cli/cmdlineparser.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,6 +1151,11 @@ CmdLineParser::Result CmdLineParser::parseFromArgs(int argc, const char* const a
11511151
mLogger.printError("invalid --premium option '" + (p2.empty() ? p : p2) + "'.");
11521152
return Result::Fail;
11531153
}
1154+
if (p2 == "cert-c-int-precision") {
1155+
int tmp;
1156+
if (!parseNumberArg(argv[i], 31, tmp, true))
1157+
return Result::Fail;
1158+
}
11541159
mSettings.premiumArgs += "--" + p;
11551160
if (isCodingStandard) {
11561161
// All checkers related to the coding standard should be enabled. The coding standards

test/testcmdlineparser.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1621,6 +1621,14 @@ class TestCmdlineParser : public TestFixture {
16211621
ASSERT_EQUALS("--cert-c-int-precision=12", settings->premiumArgs);
16221622
}
16231623

1624+
void premiumOptionsCertCIntPrecisionInvalid() {
1625+
REDIRECT;
1626+
asPremium();
1627+
const char * const argv[] = {"cppcheck", "--premium-cert-c-int-precision=abc", "file.c"};
1628+
ASSERT_EQUALS_ENUM(CmdLineParser::Result::Fail, parseFromArgs(argv));
1629+
ASSERT_EQUALS("cppcheck: error: argument to '--premium-cert-c-int-precision=' is not valid - not an integer (invalid_argument).\n", logger->str());
1630+
}
1631+
16241632
void premiumOptionsLicenseFile() {
16251633
REDIRECT;
16261634
asPremium();

0 commit comments

Comments
 (0)