diff --git a/lib/cppcheck.cpp b/lib/cppcheck.cpp index 4c3bcb7d0b6..f05cdfc8248 100644 --- a/lib/cppcheck.cpp +++ b/lib/cppcheck.cpp @@ -430,8 +430,11 @@ unsigned int CppCheck::checkClang(const FileWithDetails &file) mErrorLogger.reportOut(std::string("Checking ") + file.spath() + " ...", Color::FgGreen); // TODO: get language from FileWithDetails object - // TODO: this ignores the configured language - const bool isCpp = Path::identify(file.spath(), mSettings.cppHeaderProbe) == Standards::Language::CPP; + bool isCpp; + if (mSettings.enforcedLang != Standards::None) + isCpp = (mSettings.enforcedLang == Standards::CPP); + else + isCpp = Path::identify(file.spath(), mSettings.cppHeaderProbe) == Standards::Language::CPP; const std::string langOpt = isCpp ? "-x c++" : "-x c"; const std::string analyzerInfo = mSettings.buildDir.empty() ? std::string() : AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, file.spath(), emptyString); const std::string clangcmd = analyzerInfo + ".clang-cmd"; diff --git a/test/cli/clang-import_test.py b/test/cli/clang-import_test.py index 93dd1d8213c..8a4ec144099 100644 --- a/test/cli/clang-import_test.py +++ b/test/cli/clang-import_test.py @@ -185,12 +185,10 @@ def test_cmd_def(tmp_path): __test_cmd(tmp_path, 'test.cpp',['-DDEF'], '-x c++ -DDEF=1') -@pytest.mark.xfail(strict=True) def test_cmd_enforce_c(tmp_path): # #13128 __test_cmd(tmp_path, 'test.cpp',['-x', 'c'], '-x c') -@pytest.mark.xfail(strict=True) def test_cmd_enforce_cpp(tmp_path): # #13128 __test_cmd(tmp_path, 'test.c',['-x', 'c++'], '-x c++')