From 1705440fa3674da91aa195f921cc4a2d10f41b52 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Tue, 16 Jul 2024 12:22:31 +0200 Subject: [PATCH] ClangFormat: Fix empty warning message Change-Id: Id08afdea266c018fe6b2756cf7d3bbe8677aaae9 Reviewed-by: Christian Kandeler --- src/plugins/clangformat/clangformatutils.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/plugins/clangformat/clangformatutils.cpp b/src/plugins/clangformat/clangformatutils.cpp index 9e3444b2475..db194a0a9a7 100644 --- a/src/plugins/clangformat/clangformatutils.cpp +++ b/src/plugins/clangformat/clangformatutils.cpp @@ -396,27 +396,30 @@ Utils::FilePath filePathToCurrentSettings(const TextEditor::ICodeStylePreference / QLatin1String(Constants::SETTINGS_FILE_NAME); } -static QString s_errorMessage; Utils::expected_str parseConfigurationContent(const std::string &fileContent, clang::format::FormatStyle &style, bool allowUnknownOptions) { - auto diagHandler = [](const llvm::SMDiagnostic &diag, void * /*context*/) { - s_errorMessage = QString::fromStdString(diag.getMessage().str()) + " " - + QString::number(diag.getLineNo()) + ":" - + QString::number(diag.getColumnNo()); + llvm::SourceMgr::DiagHandlerTy diagHandler = [](const llvm::SMDiagnostic &diag, void *context) { + QString *errorMessage = reinterpret_cast(context); + *errorMessage = QString::fromStdString(diag.getMessage().str()) + " " + + QString::number(diag.getLineNo()) + ":" + + QString::number(diag.getColumnNo()); }; + QString errorMessage; style.Language = clang::format::FormatStyle::LK_Cpp; const std::error_code error = parseConfiguration( llvm::MemoryBufferRef(fileContent, "YAML"), &style, allowUnknownOptions, diagHandler, - nullptr); + &errorMessage); + errorMessage = errorMessage.trimmed().isEmpty() ? QString::fromStdString(error.message()) + : errorMessage; if (error) - return make_unexpected(s_errorMessage); + return make_unexpected(errorMessage); return {}; }