diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp
index c2877a44d8a..86b4831b94c 100644
--- a/cli/cppcheckexecutor.cpp
+++ b/cli/cppcheckexecutor.cpp
@@ -532,6 +532,15 @@ void StdLogger::writeCheckersReport(const Suppressions& supprs)
if (xmlReport) {
reportErr(" \n");
+ if (mSettings.safety)
+ reportErr(" \n");
+ if (mSettings.inlineSuppressions)
+ reportErr(" \n");
+ if (!suppressions.empty()) {
+ std::ostringstream suppressionsXml;
+ supprs.nomsg.dump(suppressionsXml);
+ reportErr(suppressionsXml.str());
+ }
reportErr(checkersReport.getXmlReport(mCriticalErrors));
}
}
diff --git a/test/cli/premium_test.py b/test/cli/premium_test.py
index d0d50389b2a..55adf772467 100644
--- a/test/cli/premium_test.py
+++ b/test/cli/premium_test.py
@@ -55,6 +55,22 @@ def test_misra_c_builtin_style_checks(tmpdir):
assert 'id="unusedVariable"' in stderr
assert 'id="checkersReport"' not in stderr
+ exitcode, _, stderr = cppcheck(['--xml-version=3', test_file], cppcheck_exe=exe)
+ assert exitcode == 0
+ assert '' in stderr
+
+ exitcode, _, stderr = cppcheck(['--xml-version=3', '--premium=safety-off', test_file], cppcheck_exe=exe)
+ assert exitcode == 0
+ assert '' not in stderr
+
+ exitcode, _, stderr = cppcheck(['--xml-version=3', '--inline-suppr', test_file], cppcheck_exe=exe)
+ assert exitcode == 0
+ assert '' in stderr
+
+ exitcode, _, stderr = cppcheck(['--xml-version=3', '--suppress=foo', test_file], cppcheck_exe=exe)
+ assert exitcode == 0
+ assert '' in stderr
+
def test_build_dir_hash_cppcheck_product(tmpdir):
# 13644 - cppcheck build dir hashes should depend on the cppcheck version
@@ -97,3 +113,4 @@ def _get_hash(s:str):
assert hash1 != hash2
+