From 46debda1c7fbbdd2b0b436b42d237c00766faab3 Mon Sep 17 00:00:00 2001 From: Artem Dergachev Date: Thu, 20 Dec 2018 22:29:49 +0000 Subject: [PATCH] Revert "[driver] [analyzer] Fix a backward compatibility issue after r348038." This reverts commits r349824, r349828, r349835. More buildbot failures were noticed. Differential Revision: https://reviews.llvm.org/D55823 rdar://problem/46504165 llvm-svn: 349843 --- clang/lib/Driver/ToolChains/Clang.cpp | 13 +-- .../invalid-a-na-ly-zer-con-fig-value.c | 80 ------------------- .../Analysis/invalid-analyzer-config-value.c | 5 -- 3 files changed, 3 insertions(+), 95 deletions(-) delete mode 100644 clang/test/Analysis/invalid-a-na-ly-zer-con-fig-value.c diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 859c4b3d7016..d377b3c03217 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -2360,6 +2360,9 @@ static void RenderAnalyzerOptions(const ArgList &Args, ArgStringList &CmdArgs, // Treat blocks as analysis entry points. CmdArgs.push_back("-analyzer-opt-analyze-nested-blocks"); + // Enable compatilibily mode to avoid analyzer-config related errors. + CmdArgs.push_back("-analyzer-config-compatibility-mode=true"); + // Add default argument set. if (!Args.hasArg(options::OPT__analyzer_no_default_checks)) { CmdArgs.push_back("-analyzer-checker=core"); @@ -3735,16 +3738,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (isa(JA)) RenderAnalyzerOptions(Args, CmdArgs, Triple, Input); - // Enable compatilibily mode to avoid analyzer-config related errors. - // Since we can't access frontend flags through hasArg, let's manually iterate - // through them. - for (size_t Index = 0; Index < Args.size(); ++Index) { - if (StringRef(Args.getArgString(Index)).contains("-analyzer-config")) { - CmdArgs.push_back("-analyzer-config-compatibility-mode=true"); - break; - } - } - CheckCodeGenerationOptions(D, Args); unsigned FunctionAlignment = ParseFunctionAlignment(TC, Args); diff --git a/clang/test/Analysis/invalid-a-na-ly-zer-con-fig-value.c b/clang/test/Analysis/invalid-a-na-ly-zer-con-fig-value.c deleted file mode 100644 index 1b6c97ad1ea1..000000000000 --- a/clang/test/Analysis/invalid-a-na-ly-zer-con-fig-value.c +++ /dev/null @@ -1,80 +0,0 @@ -// Same as invalid-analyzer-config-value.c but without -analyzer-config -// in the file name, so that argument string pattern matching -// didn't accidentally match it. - -// RUN: not %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config notes-as-events=yesplease \ -// RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-BOOL-INPUT - -// CHECK-BOOL-INPUT: (frontend): invalid input for analyzer-config option -// CHECK-BOOL-INPUT-SAME: 'notes-as-events', that expects a boolean value - -// RUN: %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config-compatibility-mode=true \ -// RUN: -analyzer-config notes-as-events=yesplease - - -// RUN: not %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config max-inlinable-size=400km/h \ -// RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-UINT-INPUT - -// CHECK-UINT-INPUT: (frontend): invalid input for analyzer-config option -// CHECK-UINT-INPUT-SAME: 'max-inlinable-size', that expects an unsigned -// CHECK-UINT-INPUT-SAME: value - -// RUN: %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config-compatibility-mode=true \ -// RUN: -analyzer-config max-inlinable-size=400km/h - - -// RUN: not %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config ctu-dir=0123012301230123 \ -// RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-FILENAME-INPUT - -// CHECK-FILENAME-INPUT: (frontend): invalid input for analyzer-config option -// CHECK-FILENAME-INPUT-SAME: 'ctu-dir', that expects a filename -// CHECK-FILENAME-INPUT-SAME: value - -// RUN: %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config-compatibility-mode=true \ -// RUN: -analyzer-config ctu-dir=0123012301230123 - - -// RUN: not %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config no-false-positives=true \ -// RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-UNKNOWN-CFG - -// CHECK-UNKNOWN-CFG: (frontend): unknown analyzer-config 'no-false-positives' - -// RUN: %clang_analyze_cc1 -verify %s \ -// RUN: -analyzer-checker=core \ -// RUN: -analyzer-config-compatibility-mode=true \ -// RUN: -analyzer-config no-false-positives=true - - -// Test the driver properly using "analyzer-config-compatibility-mode=true", -// no longer causing an error on input error. -// RUN: %clang --analyze %s - -// RUN: not %clang --analyze %s \ -// RUN: -Xclang -analyzer-config -Xclang no-false-positives=true \ -// RUN: -Xclang -analyzer-config-compatibility-mode=false \ -// RUN: 2>&1 | FileCheck %s -check-prefix=CHECK-NO-COMPAT - -// CHECK-NO-COMPAT: error: unknown analyzer-config 'no-false-positives' - -// Test the driver properly using "analyzer-config-compatibility-mode=true", -// even if -analyze isn't specified. -// RUN: %clang -fsyntax-only -Xclang -analyzer-config\ -// RUN: -Xclang remember=TheVasa %s - -// expected-no-diagnostics - -int main() {} diff --git a/clang/test/Analysis/invalid-analyzer-config-value.c b/clang/test/Analysis/invalid-analyzer-config-value.c index 4ddcfe820723..34a73a7f9d02 100644 --- a/clang/test/Analysis/invalid-analyzer-config-value.c +++ b/clang/test/Analysis/invalid-analyzer-config-value.c @@ -66,11 +66,6 @@ // CHECK-NO-COMPAT: error: unknown analyzer-config 'no-false-positives' -// Test the driver properly using "analyzer-config-compatibility-mode=true", -// even if -analyze isn't specified. -// RUN: %clang -fsyntax-only -Xclang -analyzer-config\ -// RUN: -Xclang remember=TheVasa %s - // expected-no-diagnostics int main() {}