forked from qt-creator/qt-creator
Clang: Fix c++98-compat warnings for MSVC toolchain
Clang invoked with --driver-mode=cl will map "-Wall" to "-Weverything",
thus enabling -Wc++98-compat-pedantic and way more options.
Fix this by escaping "-Wall" in the cl mode, effectively passing in
"/clang:-Wall" instead of "-Wall".
This fixes what 5675169e56 addressed also
for ClangTools.
Change-Id: Ideb7bab923d0359e8039b61e9d53c8765de79c29
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -48,11 +48,16 @@ using namespace CppTools;
|
||||
namespace ClangTools {
|
||||
namespace Internal {
|
||||
|
||||
static bool isClMode(const QStringList &options)
|
||||
{
|
||||
return options.contains("--driver-mode=cl");
|
||||
}
|
||||
|
||||
static QStringList serializeDiagnosticsArguments(const QStringList &baseOptions,
|
||||
const QString &outputFilePath)
|
||||
{
|
||||
const QStringList serializeArgs{"-serialize-diagnostics", outputFilePath};
|
||||
if (baseOptions.contains("--driver-mode=cl"))
|
||||
if (isClMode(baseOptions))
|
||||
return clangArgsForCl(serializeArgs);
|
||||
return serializeArgs;
|
||||
}
|
||||
@@ -104,7 +109,8 @@ static QStringList clangArguments(const ClangDiagnosticConfig &diagnosticConfig,
|
||||
{
|
||||
QStringList arguments;
|
||||
arguments << ClangDiagnosticConfigsModel::globalDiagnosticOptions()
|
||||
<< diagnosticConfig.clangOptions()
|
||||
<< (isClMode(baseOptions) ? CppTools::clangArgsForCl(diagnosticConfig.clangOptions())
|
||||
: diagnosticConfig.clangOptions())
|
||||
<< baseOptions;
|
||||
|
||||
if (LOG().isDebugEnabled())
|
||||
|
||||
Reference in New Issue
Block a user