diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:50:49 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 20:50:49 +0000 | 
| commit | 2298981669bf3bd63335a4be179bc0f96823a8f4 (patch) | |
| tree | 1cbe2eb27f030d2d70b80ee5ca3c86bee7326a9f /lib/FrontendTool/ExecuteCompilerInvocation.cpp | |
| parent | 9a83721404652cea39e9f02ae3e3b5c964602a5c (diff) | |
Notes
Diffstat (limited to 'lib/FrontendTool/ExecuteCompilerInvocation.cpp')
| -rw-r--r-- | lib/FrontendTool/ExecuteCompilerInvocation.cpp | 49 | 
1 files changed, 36 insertions, 13 deletions
diff --git a/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/lib/FrontendTool/ExecuteCompilerInvocation.cpp index 7015772fa1682..69e773658c5cd 100644 --- a/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/lib/FrontendTool/ExecuteCompilerInvocation.cpp @@ -1,9 +1,8 @@  //===--- ExecuteCompilerInvocation.cpp ------------------------------------===//  // -//                     The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception  //  //===----------------------------------------------------------------------===//  // @@ -65,6 +64,10 @@ CreateFrontendBaseAction(CompilerInstance &CI) {    case GenerateHeaderModule:      return llvm::make_unique<GenerateHeaderModuleAction>();    case GeneratePCH:            return llvm::make_unique<GeneratePCHAction>(); +  case GenerateInterfaceYAMLExpV1: +    return llvm::make_unique<GenerateInterfaceYAMLExpV1Action>(); +  case GenerateInterfaceTBEExpV1: +    return llvm::make_unique<GenerateInterfaceTBEExpV1Action>();    case InitOnly:               return llvm::make_unique<InitOnlyAction>();    case ParseSyntaxOnly:        return llvm::make_unique<SyntaxOnlyAction>();    case ModuleFileInfo:         return llvm::make_unique<DumpModuleInfoAction>(); @@ -117,6 +120,8 @@ CreateFrontendBaseAction(CompilerInstance &CI) {    case RunAnalysis:            Action = "RunAnalysis"; break;  #endif    case RunPreprocessorOnly:    return llvm::make_unique<PreprocessOnlyAction>(); +  case PrintDependencyDirectivesSourceMinimizerOutput: +    return llvm::make_unique<PrintDependencyDirectivesSourceMinimizerAction>();    }  #if !CLANG_ENABLE_ARCMT || !CLANG_ENABLE_STATIC_ANALYZER \ @@ -235,24 +240,42 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) {    }  #if CLANG_ENABLE_STATIC_ANALYZER -  // Honor -analyzer-checker-help. -  // This should happen AFTER plugins have been loaded! -  if (Clang->getAnalyzerOpts()->ShowCheckerHelp) { -    ento::printCheckerHelp(llvm::outs(), Clang->getFrontendOpts().Plugins, -                           Clang->getDiagnostics()); +  // These should happen AFTER plugins have been loaded! + +  AnalyzerOptions &AnOpts = *Clang->getAnalyzerOpts(); +  // Honor -analyzer-checker-help and -analyzer-checker-help-hidden. +  if (AnOpts.ShowCheckerHelp || AnOpts.ShowCheckerHelpAlpha || +      AnOpts.ShowCheckerHelpDeveloper) { +    ento::printCheckerHelp(llvm::outs(), +                           Clang->getFrontendOpts().Plugins, +                           AnOpts, +                           Clang->getDiagnostics(), +                           Clang->getLangOpts()); +    return true; +  } + +  // Honor -analyzer-checker-option-help. +  if (AnOpts.ShowCheckerOptionList || AnOpts.ShowCheckerOptionAlphaList || +      AnOpts.ShowCheckerOptionDeveloperList) { +    ento::printCheckerConfigList(llvm::outs(), +                                 Clang->getFrontendOpts().Plugins, +                                 *Clang->getAnalyzerOpts(), +                                 Clang->getDiagnostics(), +                                 Clang->getLangOpts());      return true;    }    // Honor -analyzer-list-enabled-checkers. -  if (Clang->getAnalyzerOpts()->ShowEnabledCheckerList) { +  if (AnOpts.ShowEnabledCheckerList) {      ento::printEnabledCheckerList(llvm::outs(),                                    Clang->getFrontendOpts().Plugins, -                                  *Clang->getAnalyzerOpts(), -                                  Clang->getDiagnostics()); +                                  AnOpts, +                                  Clang->getDiagnostics(), +                                  Clang->getLangOpts());    }    // Honor -analyzer-config-help. -  if (Clang->getAnalyzerOpts()->ShowConfigOptionsList) { +  if (AnOpts.ShowConfigOptionsList) {      ento::printAnalyzerConfigList(llvm::outs());      return true;    }  | 
