From 5719e7961e5f719f7a8faa15e59f823931c6dfca Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Fri, 7 Dec 2018 14:35:26 +0100 Subject: Clang: Set LC_NUMERIC to "C" for clangbackend The tidy check SuspiciousMissingCommaCheck uses the locale dependent stod() when reading settings and might throw std::invalid_argument for a locale different than "C". Fixes: QTCREATORBUG-21605 Change-Id: I69bf719a8fd94e13ce67b46238f536c85ab2eaa3 Reviewed-by: Ivan Donchevskii --- src/tools/clangbackend/clangbackendmain.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/tools/clangbackend/clangbackendmain.cpp') diff --git a/src/tools/clangbackend/clangbackendmain.cpp b/src/tools/clangbackend/clangbackendmain.cpp index efe5970a4d..5cbac3ce60 100644 --- a/src/tools/clangbackend/clangbackendmain.cpp +++ b/src/tools/clangbackend/clangbackendmain.cpp @@ -34,6 +34,7 @@ #include #include +#include using ClangBackEnd::ClangCodeModelClientProxy; using ClangBackEnd::ClangCodeModelServer; @@ -75,6 +76,10 @@ int main(int argc, char *argv[]) QCoreApplication::setApplicationVersion(QStringLiteral("1.0.0")); QCoreApplication application(argc, argv); + + // Some tidy checks use locale-dependent conversion functions and thus might throw exceptions. + std::setlocale(LC_NUMERIC, "C"); + CrashHandlerSetup setupCrashHandler(QCoreApplication::applicationName(), CrashHandlerSetup::DisableRestart); -- cgit v1.2.1