Skip to content

Commit 7dbca47

Browse files
committed
Suppressions; Fixed problem with cppcheck build dir is used
1 parent 118ad67 commit 7dbca47

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

lib/cppcheck.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1401,6 +1401,8 @@ void CppCheck::reportErr(const ErrorMessage &msg)
14011401
if (std::find(mErrorList.begin(), mErrorList.end(), errmsg) != mErrorList.end())
14021402
return;
14031403

1404+
mAnalyzerInformation.reportErr(msg, mSettings.verbose);
1405+
14041406
const Suppressions::ErrorMessage errorMessage = msg.toSuppressionsErrorMessage();
14051407

14061408
if (mUseGlobalSuppressions) {
@@ -1422,7 +1424,6 @@ void CppCheck::reportErr(const ErrorMessage &msg)
14221424
mErrorList.push_back(errmsg);
14231425

14241426
mErrorLogger.reportErr(msg);
1425-
mAnalyzerInformation.reportErr(msg, mSettings.verbose);
14261427
if (!mSettings.plistOutput.empty() && plistFile.is_open()) {
14271428
plistFile << ErrorLogger::plistData(msg);
14281429
}

test/cli/proj-inline-suppress/4.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
int main() {
2+
// cppcheck-suppress unreadVariable
3+
int i = 0;
4+
}
5+

test/cli/test-inline-suppress.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import json
55
import os
6+
import tempfile
67
from testutils import cppcheck
78

89
def create_unused_function_compile_commands():
@@ -56,3 +57,18 @@ def test_compile_commands_unused_function_suppression():
5657
ret, stdout, stderr = cppcheck(['--enable=all', '--inline-suppr', '--error-exitcode=1', '--project=./proj-inline-suppress-unusedFunction/compile_commands.json'])
5758
assert ret == 0, stdout
5859
assert 'unusedFunction' not in stderr
60+
61+
62+
def test_build_dir():
63+
with tempfile.TemporaryDirectory() as tempdir:
64+
args = f'--cppcheck-build-dir={tempdir} --enable=all --inline-suppr proj-inline-suppress/4.c'.split()
65+
66+
ret, stdout, stderr = cppcheck(args)
67+
assert ret == 0, stdout
68+
assert len(stderr) == 0
69+
70+
ret, stdout, stderr = cppcheck(args)
71+
assert ret == 0, stdout
72+
assert len(stderr) == 0
73+
74+

0 commit comments

Comments
 (0)