diff options
Diffstat (limited to 'include/clang/Driver/Driver.h')
-rw-r--r-- | include/clang/Driver/Driver.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/include/clang/Driver/Driver.h b/include/clang/Driver/Driver.h index 0ce461ca61e1a..1009754a15d52 100644 --- a/include/clang/Driver/Driver.h +++ b/include/clang/Driver/Driver.h @@ -14,6 +14,7 @@ #include "clang/Basic/LLVM.h" #include "clang/Driver/Action.h" #include "clang/Driver/Phases.h" +#include "clang/Driver/ToolChain.h" #include "clang/Driver/Types.h" #include "clang/Driver/Util.h" #include "llvm/ADT/StringMap.h" @@ -62,7 +63,7 @@ enum LTOKind { /// Driver - Encapsulate logic for constructing compilation processes /// from a set of gcc-driver-like command line arguments. class Driver { - llvm::opt::OptTable *Opts; + std::unique_ptr<llvm::opt::OptTable> Opts; DiagnosticsEngine &Diags; @@ -215,6 +216,11 @@ public: /// Use lazy precompiled headers for PCH support. unsigned CCCUsePCH : 1; + /// Force clang to emit reproducer for driver invocation. This is enabled + /// indirectly by setting FORCE_CLANG_DIAGNOSTICS_CRASH environment variable + /// or when using the -gen-reproducer driver flag. + unsigned GenReproducer : 1; + private: /// Certain options suppress the 'no input files' warning. unsigned SuppressMissingInputWarning : 1; @@ -227,7 +233,7 @@ private: /// This maps from the string representation of a triple to a ToolChain /// created targeting that triple. The driver owns all the ToolChain objects /// stored in it, and will clean them up when torn down. - mutable llvm::StringMap<ToolChain *> ToolChains; + mutable llvm::StringMap<std::unique_ptr<ToolChain>> ToolChains; private: /// TranslateInputArgs - Create a new derived argument list from the input @@ -264,7 +270,6 @@ public: Driver(StringRef ClangExecutable, StringRef DefaultTargetTriple, DiagnosticsEngine &Diags, IntrusiveRefCntPtr<vfs::FileSystem> VFS = nullptr); - ~Driver(); /// @name Accessors /// @{ @@ -304,13 +309,8 @@ public: bool isSaveTempsObj() const { return SaveTemps == SaveTempsObj; } bool embedBitcodeEnabled() const { return BitcodeEmbed != EmbedNone; } - bool embedBitcodeInObject() const { - // LTO has no object file output so ignore embed bitcode option in LTO. - return (BitcodeEmbed == EmbedBitcode) && !isUsingLTO(); - } - bool embedBitcodeMarkerOnly() const { - return (BitcodeEmbed == EmbedMarker) && !isUsingLTO(); - } + bool embedBitcodeInObject() const { return (BitcodeEmbed == EmbedBitcode); } + bool embedBitcodeMarkerOnly() const { return (BitcodeEmbed == EmbedMarker); } /// Compute the desired OpenMP runtime from the flags provided. OpenMPRuntimeKind getOpenMPRuntime(const llvm::opt::ArgList &Args) const; |