diff --git a/include/clang/Driver/Action.h b/include/clang/Driver/Action.h index 59e979c89d0476a8c915308c963762babeed2aa3..289dbe3ee4f851ac20e75b82507b5909830744fa 100644 --- a/include/clang/Driver/Action.h +++ b/include/clang/Driver/Action.h @@ -22,9 +22,6 @@ namespace opt { namespace clang { namespace driver { - // FIXME: Remove this using directive and qualify class usage below. - using namespace llvm::opt; - /// Action - Represent an abstract compilation step to perform. /// @@ -102,11 +99,12 @@ public: class InputAction : public Action { virtual void anchor(); - const Arg &Input; + const llvm::opt::Arg &Input; + public: - InputAction(const Arg &_Input, types::ID _Type); + InputAction(const llvm::opt::Arg &_Input, types::ID _Type); - const Arg &getInputArg() const { return Input; } + const llvm::opt::Arg &getInputArg() const { return Input; } static bool classof(const Action *A) { return A->getKind() == InputClass; diff --git a/include/clang/Driver/CC1AsOptions.h b/include/clang/Driver/CC1AsOptions.h index 00e120c81d46c0beaf0b551d230b7e186b8fde89..7ce2525272a31b53ecbcdf20897650faf3508af3 100644 --- a/include/clang/Driver/CC1AsOptions.h +++ b/include/clang/Driver/CC1AsOptions.h @@ -18,9 +18,6 @@ namespace opt { namespace clang { namespace driver { - // FIXME: Remove this using directive and qualify class usage below. - using namespace llvm::opt; - namespace cc1asoptions { enum ID { @@ -35,7 +32,7 @@ namespace cc1asoptions { }; } - OptTable *createCC1AsOptTable(); +llvm::opt::OptTable *createCC1AsOptTable(); } } diff --git a/include/clang/Driver/Compilation.h b/include/clang/Driver/Compilation.h index b488572f2440d3cf441aa198042b028157fb7a64..6c29b6297cce46c0fead89925d527cdc2af7f47c 100644 --- a/include/clang/Driver/Compilation.h +++ b/include/clang/Driver/Compilation.h @@ -25,9 +25,6 @@ namespace opt { namespace clang { namespace driver { - // FIXME: Remove this using directive and qualify class usage below. - using namespace llvm::opt; - class Driver; class JobAction; class JobList; @@ -43,11 +40,11 @@ class Compilation { const ToolChain &DefaultToolChain; /// The original (untranslated) input argument list. - InputArgList *Args; + llvm::opt::InputArgList *Args; /// The driver translated arguments. Note that toolchains may perform their /// own argument translation. - DerivedArgList *TranslatedArgs; + llvm::opt::DerivedArgList *TranslatedArgs; /// The list of actions. ActionList Actions; @@ -57,11 +54,11 @@ class Compilation { /// Cache of translated arguments for a particular tool chain and bound /// architecture. - llvm::DenseMap<std::pair<const ToolChain*, const char*>, - DerivedArgList*> TCArgs; + llvm::DenseMap<std::pair<const ToolChain *, const char *>, + llvm::opt::DerivedArgList *> TCArgs; /// Temporary files which should be removed on exit. - ArgStringList TempFiles; + llvm::opt::ArgStringList TempFiles; /// Result files which should be removed on failure. ArgStringMap ResultFiles; @@ -75,18 +72,19 @@ class Compilation { public: Compilation(const Driver &D, const ToolChain &DefaultToolChain, - InputArgList *Args, DerivedArgList *TranslatedArgs); + llvm::opt::InputArgList *Args, + llvm::opt::DerivedArgList *TranslatedArgs); ~Compilation(); const Driver &getDriver() const { return TheDriver; } const ToolChain &getDefaultToolChain() const { return DefaultToolChain; } - const InputArgList &getInputArgs() const { return *Args; } + const llvm::opt::InputArgList &getInputArgs() const { return *Args; } - const DerivedArgList &getArgs() const { return *TranslatedArgs; } + const llvm::opt::DerivedArgList &getArgs() const { return *TranslatedArgs; } - DerivedArgList &getArgs() { return *TranslatedArgs; } + llvm::opt::DerivedArgList &getArgs() { return *TranslatedArgs; } ActionList &getActions() { return Actions; } const ActionList &getActions() const { return Actions; } @@ -96,7 +94,7 @@ public: void addCommand(Command *C) { Jobs.addJob(C); } - const ArgStringList &getTempFiles() const { return TempFiles; } + const llvm::opt::ArgStringList &getTempFiles() const { return TempFiles; } const ArgStringMap &getResultFiles() const { return ResultFiles; } @@ -111,8 +109,8 @@ public: /// tool chain \p TC (or the default tool chain, if TC is not specified). /// /// \param BoundArch - The bound architecture name, or 0. - const DerivedArgList &getArgsForToolChain(const ToolChain *TC, - const char *BoundArch); + const llvm::opt::DerivedArgList &getArgsForToolChain(const ToolChain *TC, + const char *BoundArch); /// addTempFile - Add a file to remove on exit, and returns its /// argument. @@ -145,7 +143,7 @@ public: /// /// \param IssueErrors - Report failures as errors. /// \return Whether all files were removed successfully. - bool CleanupFileList(const ArgStringList &Files, + bool CleanupFileList(const llvm::opt::ArgStringList &Files, bool IssueErrors = false) const; /// CleanupFileMap - Remove the files in the given map. diff --git a/include/clang/Driver/Driver.h b/include/clang/Driver/Driver.h index f702548e1c41f794e5996eb48b9f22f1a7936c2a..1459e0d37195741e3763ba387e89f7e1c48aa0f4 100644 --- a/include/clang/Driver/Driver.h +++ b/include/clang/Driver/Driver.h @@ -36,8 +36,6 @@ namespace opt { namespace clang { namespace driver { - // FIXME: Remove this using directive and qualify class usage below. - using namespace llvm::opt; class Action; class Command; @@ -49,7 +47,7 @@ namespace driver { /// Driver - Encapsulate logic for constructing compilation processes /// from a set of gcc-driver-like command line arguments. class Driver { - OptTable *Opts; + llvm::opt::OptTable *Opts; DiagnosticsEngine &Diags; @@ -115,7 +113,8 @@ public: const char *CCLogDiagnosticsFilename; /// A list of inputs and their types for the given arguments. - typedef SmallVector<std::pair<types::ID, const Arg*>, 16> InputList; + typedef SmallVector<std::pair<types::ID, const llvm::opt::Arg *>, 16> + InputList; /// Whether the driver should follow g++ like behavior. unsigned CCCIsCXX : 1; @@ -174,12 +173,13 @@ private: private: /// TranslateInputArgs - Create a new derived argument list from the input /// arguments, after applying the standard argument translations. - DerivedArgList *TranslateInputArgs(const InputArgList &Args) const; + llvm::opt::DerivedArgList * + TranslateInputArgs(const llvm::opt::InputArgList &Args) const; // getFinalPhase - Determine which compilation mode we are in and record // which option we used to determine the final phase. - phases::ID getFinalPhase(const DerivedArgList &DAL, Arg **FinalPhaseArg = 0) - const; + phases::ID getFinalPhase(const llvm::opt::DerivedArgList &DAL, + llvm::opt::Arg **FinalPhaseArg = 0) const; public: Driver(StringRef _ClangExecutable, @@ -194,8 +194,7 @@ public: /// Name to use when invoking gcc/g++. const std::string &getCCCGenericGCCName() const { return CCCGenericGCCName; } - - const OptTable &getOpts() const { return *Opts; } + const llvm::opt::OptTable &getOpts() const { return *Opts; } const DiagnosticsEngine &getDiags() const { return Diags; } @@ -239,7 +238,7 @@ public: /// ParseArgStrings - Parse the given list of strings into an /// ArgList. - InputArgList *ParseArgStrings(ArrayRef<const char *> Args); + llvm::opt::InputArgList *ParseArgStrings(ArrayRef<const char *> Args); /// BuildInputs - Construct the list of inputs and their types from /// the given arguments. @@ -248,7 +247,7 @@ public: /// \param Args - The input arguments. /// \param Inputs - The list to store the resulting compilation /// inputs onto. - void BuildInputs(const ToolChain &TC, const DerivedArgList &Args, + void BuildInputs(const ToolChain &TC, const llvm::opt::DerivedArgList &Args, InputList &Inputs) const; /// BuildActions - Construct the list of actions to perform for the @@ -257,7 +256,7 @@ public: /// \param TC - The default host tool chain. /// \param Args - The input arguments. /// \param Actions - The list to store the resulting actions onto. - void BuildActions(const ToolChain &TC, const DerivedArgList &Args, + void BuildActions(const ToolChain &TC, const llvm::opt::DerivedArgList &Args, const InputList &Inputs, ActionList &Actions) const; /// BuildUniversalActions - Construct the list of actions to perform @@ -266,7 +265,8 @@ public: /// \param TC - The default host tool chain. /// \param Args - The input arguments. /// \param Actions - The list to store the resulting actions onto. - void BuildUniversalActions(const ToolChain &TC, const DerivedArgList &Args, + void BuildUniversalActions(const ToolChain &TC, + const llvm::opt::DerivedArgList &Args, const InputList &BAInputs, ActionList &Actions) const; @@ -304,7 +304,7 @@ public: void PrintHelp(bool ShowHidden) const; /// PrintOptions - Print the list of arguments. - void PrintOptions(const ArgList &Args) const; + void PrintOptions(const llvm::opt::ArgList &Args) const; /// PrintVersion - Print the driver version. void PrintVersion(const Compilation &C, raw_ostream &OS) const; @@ -335,10 +335,9 @@ public: /// ConstructAction - Construct the appropriate action to do for /// \p Phase on the \p Input, taking in to account arguments /// like -fsyntax-only or --analyze. - Action *ConstructPhaseAction(const ArgList &Args, phases::ID Phase, + Action *ConstructPhaseAction(const llvm::opt::ArgList &Args, phases::ID Phase, Action *Input) const; - /// BuildJobsForAction - Construct the jobs to perform for the /// action \p A. void BuildJobsForAction(Compilation &C, @@ -378,14 +377,14 @@ public: /// handle this action. bool ShouldUseClangCompiler(const JobAction &JA) const; - bool IsUsingLTO(const ArgList &Args) const; + bool IsUsingLTO(const llvm::opt::ArgList &Args) const; private: /// \brief Retrieves a ToolChain for a particular target triple. /// /// Will cache ToolChains for the life of the driver object, and create them /// on-demand. - const ToolChain &getToolChain(const ArgList &Args, + const ToolChain &getToolChain(const llvm::opt::ArgList &Args, StringRef DarwinArchName = "") const; /// @} diff --git a/include/clang/Driver/Job.h b/include/clang/Driver/Job.h index 3f7b6094a4e95894a60661c1cc9a2fd3056906a7..b9a732db3b32a5b2e1fb38943e048d317d382cee 100644 --- a/include/clang/Driver/Job.h +++ b/include/clang/Driver/Job.h @@ -60,11 +60,11 @@ class Command : public Job { /// The list of program arguments (not including the implicit first /// argument, which will be the executable). - ArgStringList Arguments; + llvm::opt::ArgStringList Arguments; public: Command(const Action &_Source, const Tool &_Creator, const char *_Executable, - const ArgStringList &_Arguments); + const llvm::opt::ArgStringList &_Arguments); /// getSource - Return the Action which caused the creation of this job. const Action &getSource() const { return Source; } @@ -74,7 +74,7 @@ public: const char *getExecutable() const { return Executable; } - const ArgStringList &getArguments() const { return Arguments; } + const llvm::opt::ArgStringList &getArguments() const { return Arguments; } static bool classof(const Job *J) { return J->getKind() == CommandClass; diff --git a/include/clang/Driver/Tool.h b/include/clang/Driver/Tool.h index 66168232a1ec89af2d76b4c9d5640d19515fda19..4159ecabf6391ce89646ca164dd5f33f9469e1bc 100644 --- a/include/clang/Driver/Tool.h +++ b/include/clang/Driver/Tool.h @@ -20,8 +20,6 @@ namespace opt { namespace clang { namespace driver { - // FIXME: Remove this using directive and qualify class usage below. - using namespace llvm::opt; class Compilation; class InputInfo; @@ -74,7 +72,7 @@ public: virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const = 0; }; diff --git a/include/clang/Driver/ToolChain.h b/include/clang/Driver/ToolChain.h index 7b123269803d0a561ff94d6521f7b55000f843a2..c73575944e970df9666d0193ca10b4054dbd921a 100644 --- a/include/clang/Driver/ToolChain.h +++ b/include/clang/Driver/ToolChain.h @@ -31,9 +31,6 @@ namespace clang { class ObjCRuntime; namespace driver { - // FIXME: Remove this using directive and qualify class usage below. - using namespace llvm::opt; - class Compilation; class Driver; class JobAction; @@ -57,7 +54,7 @@ public: private: const Driver &D; const llvm::Triple Triple; - const ArgList &Args; + const llvm::opt::ArgList &Args; /// The list of toolchain specific path prefixes to search for /// files. @@ -76,7 +73,8 @@ private: Tool *getClangAs() const; protected: - ToolChain(const Driver &D, const llvm::Triple &T, const ArgList &Args); + ToolChain(const Driver &D, const llvm::Triple &T, + const llvm::opt::ArgList &Args); virtual Tool *buildAssembler() const; virtual Tool *buildLinker() const; @@ -84,17 +82,18 @@ protected: /// \name Utilities for implementing subclasses. ///@{ - static void addSystemInclude(const ArgList &DriverArgs, - ArgStringList &CC1Args, + static void addSystemInclude(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, const Twine &Path); - static void addExternCSystemInclude(const ArgList &DriverArgs, - ArgStringList &CC1Args, + static void addExternCSystemInclude(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + const Twine &Path); + static void + addExternCSystemIncludeIfExists(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, const Twine &Path); - static void addExternCSystemIncludeIfExists(const ArgList &DriverArgs, - ArgStringList &CC1Args, - const Twine &Path); - static void addSystemIncludes(const ArgList &DriverArgs, - ArgStringList &CC1Args, + static void addSystemIncludes(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, ArrayRef<StringRef> Paths); ///@} @@ -132,8 +131,9 @@ public: /// specific translations are needed. /// /// \param BoundArch - The bound architecture name, or 0. - virtual DerivedArgList *TranslateArgs(const DerivedArgList &Args, - const char *BoundArch) const { + virtual llvm::opt::DerivedArgList * + TranslateArgs(const llvm::opt::DerivedArgList &Args, + const char *BoundArch) const { return 0; } @@ -233,16 +233,18 @@ public: /// ComputeLLVMTriple - Return the LLVM target triple to use, after taking /// command line arguments into account. - virtual std::string ComputeLLVMTriple(const ArgList &Args, - types::ID InputType = types::TY_INVALID) const; + virtual std::string + ComputeLLVMTriple(const llvm::opt::ArgList &Args, + types::ID InputType = types::TY_INVALID) const; /// ComputeEffectiveClangTriple - Return the Clang triple to use for this /// target, which may take into account the command line arguments. For /// example, on Darwin the -mmacosx-version-min= command line argument (which /// sets the deployment target) determines the version in the triple passed to /// Clang. - virtual std::string ComputeEffectiveClangTriple(const ArgList &Args, - types::ID InputType = types::TY_INVALID) const; + virtual std::string ComputeEffectiveClangTriple( + const llvm::opt::ArgList &Args, + types::ID InputType = types::TY_INVALID) const; /// getDefaultObjCRuntime - Return the default Objective-C runtime /// for this platform. @@ -261,42 +263,46 @@ public: /// /// This routine is responsible for adding the necessary cc1 arguments to /// include headers from standard system header directories. - virtual void AddClangSystemIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; + virtual void + AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; /// \brief Add options that need to be passed to cc1 for this target. - virtual void addClangTargetOptions(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; + virtual void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; // GetRuntimeLibType - Determine the runtime library type to use with the // given compilation arguments. - virtual RuntimeLibType GetRuntimeLibType(const ArgList &Args) const; + virtual RuntimeLibType + GetRuntimeLibType(const llvm::opt::ArgList &Args) const; // GetCXXStdlibType - Determine the C++ standard library type to use with the // given compilation arguments. - virtual CXXStdlibType GetCXXStdlibType(const ArgList &Args) const; + virtual CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const; /// AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set /// the include paths to use for the given C++ standard library type. - virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; + virtual void + AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; /// AddCXXStdlibLibArgs - Add the system specific linker arguments to use /// for the given C++ standard library type. - virtual void AddCXXStdlibLibArgs(const ArgList &Args, - ArgStringList &CmdArgs) const; + virtual void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; /// AddCCKextLibArgs - Add the system specific linker arguments to use /// for kernel extensions (Darwin-specific). - virtual void AddCCKextLibArgs(const ArgList &Args, - ArgStringList &CmdArgs) const; + virtual void AddCCKextLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; /// AddFastMathRuntimeIfAvailable - If a runtime library exists that sets /// global flags for unsafe floating point math, add it and return true. /// /// This checks for presence of the -ffast-math or -funsafe-math flags. - virtual bool AddFastMathRuntimeIfAvailable(const ArgList &Args, - ArgStringList &CmdArgs) const; + virtual bool + AddFastMathRuntimeIfAvailable(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; }; } // end namespace driver diff --git a/include/clang/Frontend/CompilerInvocation.h b/include/clang/Frontend/CompilerInvocation.h index ef495ebd9a9932e94afd0933fa48ff3283a50d47..f64773c2c4bdae8f27b2639a0cc295a28ed34c34 100644 --- a/include/clang/Frontend/CompilerInvocation.h +++ b/include/clang/Frontend/CompilerInvocation.h @@ -36,15 +36,9 @@ class ArgList; } namespace clang { - class CompilerInvocation; class DiagnosticsEngine; -namespace driver { - // FIXME: Remove this using directive and qualify class usage below. - using namespace llvm::opt; -} - /// \brief Fill out Opts based on the options given in Args. /// /// Args must have been created from the OptTable returned by @@ -52,9 +46,9 @@ namespace driver { /// /// When errors are encountered, return false and, if Diags is non-null, /// report the error(s). -bool ParseDiagnosticArgs(DiagnosticOptions &Opts, driver::ArgList &Args, +bool ParseDiagnosticArgs(DiagnosticOptions &Opts, llvm::opt::ArgList &Args, DiagnosticsEngine *Diags = 0); - + class CompilerInvocationBase : public RefCountedBase<CompilerInvocation> { protected: /// Options controlling the language variant. diff --git a/lib/Driver/InputInfo.h b/lib/Driver/InputInfo.h index f42a94c986ecab024b0e4c651ad5a5b0612d2e95..4eedd22a62dacf1dcdefbdfa7d93d53722658536 100644 --- a/lib/Driver/InputInfo.h +++ b/lib/Driver/InputInfo.h @@ -35,7 +35,7 @@ class InputInfo { union { const char *Filename; - const Arg *InputArg; + const llvm::opt::Arg *InputArg; } Data; Class Kind; types::ID Type; @@ -50,8 +50,9 @@ public: : Kind(Filename), Type(_Type), BaseInput(_BaseInput) { Data.Filename = _Filename; } - InputInfo(const Arg *_InputArg, types::ID _Type, const char *_BaseInput) - : Kind(InputArg), Type(_Type), BaseInput(_BaseInput) { + InputInfo(const llvm::opt::Arg *_InputArg, types::ID _Type, + const char *_BaseInput) + : Kind(InputArg), Type(_Type), BaseInput(_BaseInput) { Data.InputArg = _InputArg; } @@ -65,7 +66,7 @@ public: assert(isFilename() && "Invalid accessor."); return Data.Filename; } - const Arg &getInputArg() const { + const llvm::opt::Arg &getInputArg() const { assert(isInputArg() && "Invalid accessor."); return *Data.InputArg; } diff --git a/lib/Driver/SanitizerArgs.h b/lib/Driver/SanitizerArgs.h index 53a0a75fcb280f91c6c677a5b61ef546520ecdd9..2ca93bff35f51e7b71427e0e85d850df3181b80d 100644 --- a/lib/Driver/SanitizerArgs.h +++ b/lib/Driver/SanitizerArgs.h @@ -52,7 +52,7 @@ class SanitizerArgs { SanitizerArgs() : Kind(0), BlacklistFile(""), MsanTrackOrigins(false), AsanZeroBaseShadow(false), UbsanTrapOnError(false) {} /// Parses the sanitizer arguments from an argument list. - SanitizerArgs(const ToolChain &TC, const ArgList &Args); + SanitizerArgs(const ToolChain &TC, const llvm::opt::ArgList &Args); bool needsAsanRt() const { return Kind & NeedsAsanRt; } bool needsTsanRt() const { return Kind & NeedsTsanRt; } @@ -73,7 +73,8 @@ class SanitizerArgs { return (Kind & HasZeroBaseShadow) || AsanZeroBaseShadow; } - void addArgs(const ArgList &Args, ArgStringList &CmdArgs) const { + void addArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const { if (!Kind) return; SmallString<256> SanitizeOpt("-fsanitize="); @@ -117,7 +118,8 @@ class SanitizerArgs { /// Parse a -fsanitize= or -fno-sanitize= argument's values, diagnosing any /// invalid components. - static unsigned parse(const Driver &D, const Arg *A, bool DiagnoseErrors) { + static unsigned parse(const Driver &D, const llvm::opt::Arg *A, + bool DiagnoseErrors) { unsigned Kind = 0; for (unsigned I = 0, N = A->getNumValues(); I != N; ++I) { if (unsigned K = parse(A->getValue(I))) @@ -132,8 +134,9 @@ class SanitizerArgs { /// Parse a single flag of the form -f[no]sanitize=, or /// -f*-sanitizer. Sets the masks defining required change of Kind value. /// Returns true if the flag was parsed successfully. - static bool parse(const Driver &D, const ArgList &Args, const Arg *A, - unsigned &Add, unsigned &Remove, bool DiagnoseErrors) { + static bool parse(const Driver &D, const llvm::opt::ArgList &Args, + const llvm::opt::Arg *A, unsigned &Add, unsigned &Remove, + bool DiagnoseErrors) { Add = 0; Remove = 0; const char *DeprecatedReplacement = 0; @@ -177,9 +180,11 @@ class SanitizerArgs { /// provides a sanitizer kind in \p Mask. For example, the argument list /// "-fsanitize=thread,vptr -faddress-sanitizer" with mask \c NeedsUbsanRt /// would produce "-fsanitize=vptr". - static std::string lastArgumentForKind(const Driver &D, const ArgList &Args, + static std::string lastArgumentForKind(const Driver &D, + const llvm::opt::ArgList &Args, unsigned Kind) { - for (ArgList::const_reverse_iterator I = Args.rbegin(), E = Args.rend(); + for (llvm::opt::ArgList::const_reverse_iterator I = Args.rbegin(), + E = Args.rend(); I != E; ++I) { unsigned Add, Remove; if (parse(D, Args, *I, Add, Remove, false) && @@ -194,7 +199,8 @@ class SanitizerArgs { /// a value in \p Mask. For instance, the argument /// "-fsanitize=address,alignment" with mask \c NeedsUbsanRt would produce /// "-fsanitize=alignment". - static std::string describeSanitizeArg(const ArgList &Args, const Arg *A, + static std::string describeSanitizeArg(const llvm::opt::ArgList &Args, + const llvm::opt::Arg *A, unsigned Mask) { if (!A->getOption().matches(options::OPT_fsanitize_EQ)) return A->getAsString(Args); diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index 49c577e97565930b7040afbfa6ee3aefba1a79a7..cf5e1443895b35184b13323162b817ad601fbe19 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -81,7 +81,7 @@ protected: public: GCCInstallationDetector(const Driver &D, const llvm::Triple &TargetTriple, - const ArgList &Args); + const llvm::opt::ArgList &Args); /// \brief Check whether we detected a valid GCC install. bool isValid() const { return IsValid; } @@ -111,7 +111,7 @@ protected: SmallVectorImpl<StringRef> &MultiarchTripleAliases); void ScanLibDirForGCCTriple(llvm::Triple::ArchType TargetArch, - const ArgList &Args, + const llvm::opt::ArgList &Args, const std::string &LibDir, StringRef CandidateTriple, bool NeedsMultiarchSuffix = false); @@ -120,7 +120,8 @@ protected: GCCInstallationDetector GCCInstallation; public: - Generic_GCC(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + Generic_GCC(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); ~Generic_GCC(); virtual bool IsUnwindTablesDefault() const; @@ -192,13 +193,14 @@ private: std::string iOSVersionMin; private: - void AddDeploymentTarget(DerivedArgList &Args) const; + void AddDeploymentTarget(llvm::opt::DerivedArgList &Args) const; public: - Darwin(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + Darwin(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); ~Darwin(); - std::string ComputeEffectiveClangTriple(const ArgList &Args, + std::string ComputeEffectiveClangTriple(const llvm::opt::ArgList &Args, types::ID InputType) const; /// @name Darwin Specific Toolchain API @@ -248,7 +250,7 @@ public: /// getDarwinArchName - Get the "Darwin" arch name for a particular compiler /// invocation. For example, Darwin treats different ARM variations as /// distinct architectures. - StringRef getDarwinArchName(const ArgList &Args) const; + StringRef getDarwinArchName(const llvm::opt::ArgList &Args) const; bool isIPhoneOSVersionLT(unsigned V0, unsigned V1=0, unsigned V2=0) const { assert(isTargetIPhoneOS() && "Unexpected call for OS X target!"); @@ -261,14 +263,15 @@ public: } /// AddLinkARCArgs - Add the linker arguments to link the ARC runtime library. - virtual void AddLinkARCArgs(const ArgList &Args, - ArgStringList &CmdArgs) const = 0; - + virtual void AddLinkARCArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const = 0; + /// AddLinkRuntimeLibArgs - Add the linker arguments to link the compiler /// runtime library. - virtual void AddLinkRuntimeLibArgs(const ArgList &Args, - ArgStringList &CmdArgs) const = 0; - + virtual void + AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const = 0; + /// } /// @name ToolChain Implementation /// { @@ -280,8 +283,9 @@ public: virtual ObjCRuntime getDefaultObjCRuntime(bool isNonFragile) const; virtual bool hasBlocksRuntime() const; - virtual DerivedArgList *TranslateArgs(const DerivedArgList &Args, - const char *BoundArch) const; + virtual llvm::opt::DerivedArgList * + TranslateArgs(const llvm::opt::DerivedArgList &Args, + const char *BoundArch) const; virtual bool IsBlocksDefault() const { // Always allow blocks on Darwin; users interested in versioning are @@ -354,35 +358,38 @@ public: /// DarwinClang - The Darwin toolchain used by Clang. class LLVM_LIBRARY_VISIBILITY DarwinClang : public Darwin { public: - DarwinClang(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + DarwinClang(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); /// @name Darwin ToolChain Implementation /// { - virtual void AddLinkRuntimeLibArgs(const ArgList &Args, - ArgStringList &CmdArgs) const; - void AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs, + virtual void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + void AddLinkRuntimeLib(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs, const char *DarwinStaticLib, bool AlwaysLink = false) const; - virtual void AddCXXStdlibLibArgs(const ArgList &Args, - ArgStringList &CmdArgs) const; + virtual void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; - virtual void AddCCKextLibArgs(const ArgList &Args, - ArgStringList &CmdArgs) const; + virtual void AddCCKextLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; - virtual void AddLinkARCArgs(const ArgList &Args, - ArgStringList &CmdArgs) const; + virtual void AddLinkARCArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; /// } }; /// Darwin_Generic_GCC - Generic Darwin tool chain using gcc. class LLVM_LIBRARY_VISIBILITY Darwin_Generic_GCC : public Generic_GCC { public: - Darwin_Generic_GCC(const Driver &D, const llvm::Triple& Triple, const ArgList &Args) - : Generic_GCC(D, Triple, Args) {} + Darwin_Generic_GCC(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args) + : Generic_GCC(D, Triple, Args) {} - std::string ComputeEffectiveClangTriple(const ArgList &Args, + std::string ComputeEffectiveClangTriple(const llvm::opt::ArgList &Args, types::ID InputType) const; virtual bool isPICDefault() const { return false; } @@ -391,8 +398,9 @@ public: class LLVM_LIBRARY_VISIBILITY Generic_ELF : public Generic_GCC { virtual void anchor(); public: - Generic_ELF(const Driver &D, const llvm::Triple& Triple, const ArgList &Args) - : Generic_GCC(D, Triple, Args) {} + Generic_ELF(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args) + : Generic_GCC(D, Triple, Args) {} virtual bool IsIntegratedAssemblerDefault() const { // Default integrated assembler to on for x86. @@ -404,7 +412,8 @@ public: class LLVM_LIBRARY_VISIBILITY AuroraUX : public Generic_GCC { public: - AuroraUX(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + AuroraUX(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); protected: virtual Tool *buildAssembler() const; @@ -413,7 +422,8 @@ protected: class LLVM_LIBRARY_VISIBILITY Solaris : public Generic_GCC { public: - Solaris(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + Solaris(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool IsIntegratedAssemblerDefault() const { return true; } protected: @@ -425,7 +435,8 @@ protected: class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF { public: - OpenBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + OpenBSD(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool IsMathErrnoDefault() const { return false; } virtual bool IsObjCNonFragileABIDefault() const { return true; } @@ -442,16 +453,18 @@ protected: class LLVM_LIBRARY_VISIBILITY Bitrig : public Generic_ELF { public: - Bitrig(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + Bitrig(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool IsMathErrnoDefault() const { return false; } virtual bool IsObjCNonFragileABIDefault() const { return true; } virtual bool IsObjCLegacyDispatchDefault() const { return false; } - virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; - virtual void AddCXXStdlibLibArgs(const ArgList &Args, - ArgStringList &CmdArgs) const; + virtual void + AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; + virtual void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; virtual unsigned GetDefaultStackProtectorLevel(bool KernelOrKext) const { return 1; } @@ -463,7 +476,8 @@ protected: class LLVM_LIBRARY_VISIBILITY FreeBSD : public Generic_ELF { public: - FreeBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + FreeBSD(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool IsMathErrnoDefault() const { return false; } virtual bool IsObjCNonFragileABIDefault() const { return true; } @@ -476,15 +490,17 @@ protected: class LLVM_LIBRARY_VISIBILITY NetBSD : public Generic_ELF { public: - NetBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + NetBSD(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool IsMathErrnoDefault() const { return false; } virtual bool IsObjCNonFragileABIDefault() const { return true; } - virtual CXXStdlibType GetCXXStdlibType(const ArgList &Args) const; + virtual CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const; - virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; + virtual void + AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; protected: virtual Tool *buildAssembler() const; @@ -493,7 +509,8 @@ protected: class LLVM_LIBRARY_VISIBILITY Minix : public Generic_ELF { public: - Minix(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + Minix(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); protected: virtual Tool *buildAssembler() const; @@ -502,7 +519,8 @@ protected: class LLVM_LIBRARY_VISIBILITY DragonFly : public Generic_ELF { public: - DragonFly(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + DragonFly(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool IsMathErrnoDefault() const { return false; } @@ -513,16 +531,19 @@ protected: class LLVM_LIBRARY_VISIBILITY Linux : public Generic_ELF { public: - Linux(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + Linux(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool HasNativeLLVMSupport() const; - virtual void AddClangSystemIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; - virtual void addClangTargetOptions(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; - virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; + virtual void + AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; + virtual void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; + virtual void + AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; virtual bool isPIEDefault() const; std::string Linker; @@ -537,13 +558,13 @@ private: static bool addLibStdCXXIncludePaths(Twine Base, Twine Suffix, Twine TargetArchDir, Twine MultiLibSuffix, - const ArgList &DriverArgs, - ArgStringList &CC1Args); + const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args); static bool addLibStdCXXIncludePaths(Twine Base, Twine TargetArchDir, - const ArgList &DriverArgs, - ArgStringList &CC1Args); + const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args); - std::string computeSysRoot(const ArgList &Args) const; + std::string computeSysRoot(const llvm::opt::ArgList &Args) const; }; class LLVM_LIBRARY_VISIBILITY Hexagon_TC : public Linux { @@ -554,28 +575,30 @@ protected: public: Hexagon_TC(const Driver &D, const llvm::Triple &Triple, - const ArgList &Args); + const llvm::opt::ArgList &Args); ~Hexagon_TC(); - virtual void AddClangSystemIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; - virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; - virtual CXXStdlibType GetCXXStdlibType(const ArgList &Args) const; + virtual void + AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; + virtual void + AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; + virtual CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const; StringRef GetGCCLibAndIncVersion() const { return GCCLibAndIncVersion.Text; } static std::string GetGnuDir(const std::string &InstalledDir); - static StringRef GetTargetCPU(const ArgList &Args); + static StringRef GetTargetCPU(const llvm::opt::ArgList &Args); }; /// TCEToolChain - A tool chain using the llvm bitcode tools to perform /// all subcommands. See http://tce.cs.tut.fi for our peculiar target. class LLVM_LIBRARY_VISIBILITY TCEToolChain : public ToolChain { public: - TCEToolChain(const Driver &D, const llvm::Triple& Triple, - const ArgList &Args); + TCEToolChain(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); ~TCEToolChain(); bool IsMathErrnoDefault() const; @@ -586,7 +609,8 @@ public: class LLVM_LIBRARY_VISIBILITY Windows : public ToolChain { public: - Windows(const Driver &D, const llvm::Triple& Triple, const ArgList &Args); + Windows(const Driver &D, const llvm::Triple &Triple, + const llvm::opt::ArgList &Args); virtual bool IsIntegratedAssemblerDefault() const; virtual bool IsUnwindTablesDefault() const; @@ -594,10 +618,13 @@ public: virtual bool isPIEDefault() const; virtual bool isPICDefaultForced() const; - virtual void AddClangSystemIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; - virtual void AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, - ArgStringList &CC1Args) const; + virtual void + AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; + virtual void + AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const; + protected: virtual Tool *buildLinker() const; virtual Tool *buildAssembler() const; diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h index 8250527202958d1b5e2c7459f976748dbebca2c3..cc229af44e7504a05b8076135f73ebf22f0d8319 100644 --- a/lib/Driver/Tools.h +++ b/lib/Driver/Tools.h @@ -33,34 +33,41 @@ using llvm::opt::ArgStringList; /// \brief Clang compiler tool. class LLVM_LIBRARY_VISIBILITY Clang : public Tool { public: - static const char *getBaseInputName(const ArgList &Args, + static const char *getBaseInputName(const llvm::opt::ArgList &Args, const InputInfoList &Inputs); - static const char *getBaseInputStem(const ArgList &Args, + static const char *getBaseInputStem(const llvm::opt::ArgList &Args, const InputInfoList &Inputs); - static const char *getDependencyFileName(const ArgList &Args, + static const char *getDependencyFileName(const llvm::opt::ArgList &Args, const InputInfoList &Inputs); private: - void AddPreprocessingOptions(Compilation &C, - const JobAction &JA, + void AddPreprocessingOptions(Compilation &C, const JobAction &JA, const Driver &D, - const ArgList &Args, - ArgStringList &CmdArgs, + const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs, const InputInfo &Output, const InputInfoList &Inputs) const; - void AddARMTargetArgs(const ArgList &Args, ArgStringList &CmdArgs, + void AddARMTargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs, bool KernelOrKext) const; - void AddMIPSTargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const; - void AddPPCTargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const; - void AddR600TargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const; - void AddSparcTargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const; - void AddX86TargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const; - void AddHexagonTargetArgs (const ArgList &Args, ArgStringList &CmdArgs) const; + void AddMIPSTargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + void AddPPCTargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + void AddR600TargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + void AddSparcTargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + void AddX86TargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + void AddHexagonTargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; enum RewriteKind { RK_None, RK_Fragile, RK_NonFragile }; - ObjCRuntime AddObjCRuntimeArgs(const ArgList &args, ArgStringList &cmdArgs, + ObjCRuntime AddObjCRuntimeArgs(const llvm::opt::ArgList &args, + llvm::opt::ArgStringList &cmdArgs, RewriteKind rewrite) const; public: @@ -73,14 +80,17 @@ using llvm::opt::ArgStringList; virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; /// \brief Clang integrated assembler tool. class LLVM_LIBRARY_VISIBILITY ClangAs : public Tool { - void AddARMTargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const; - void AddX86TargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const; + void AddARMTargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + void AddX86TargetArgs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; + public: ClangAs(const ToolChain &TC) : Tool("clang::as", "clang integrated assembler", TC) {} @@ -92,7 +102,7 @@ using llvm::opt::ArgStringList; virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; @@ -106,16 +116,16 @@ namespace gcc { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; /// RenderExtraToolArgs - Render any arguments necessary to force /// the particular tool mode. - virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const = 0; + virtual void + RenderExtraToolArgs(const JobAction &JA, + llvm::opt::ArgStringList &CmdArgs) const = 0; }; - class LLVM_LIBRARY_VISIBILITY Preprocess : public Common { public: Preprocess(const ToolChain &TC) : Common("gcc::Preprocess", @@ -125,7 +135,7 @@ namespace gcc { virtual bool hasIntegratedCPP() const { return false; } virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const; + llvm::opt::ArgStringList &CmdArgs) const; }; class LLVM_LIBRARY_VISIBILITY Precompile : public Common { @@ -137,7 +147,7 @@ namespace gcc { virtual bool hasIntegratedCPP() const { return true; } virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const; + llvm::opt::ArgStringList &CmdArgs) const; }; class LLVM_LIBRARY_VISIBILITY Compile : public Common { @@ -149,7 +159,7 @@ namespace gcc { virtual bool hasIntegratedCPP() const { return true; } virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const; + llvm::opt::ArgStringList &CmdArgs) const; }; class LLVM_LIBRARY_VISIBILITY Assemble : public Common { @@ -160,7 +170,7 @@ namespace gcc { virtual bool hasIntegratedCPP() const { return false; } virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const; + llvm::opt::ArgStringList &CmdArgs) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Common { @@ -172,7 +182,7 @@ namespace gcc { virtual bool isLinkJob() const { return true; } virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const; + llvm::opt::ArgStringList &CmdArgs) const; }; } // end namespace gcc @@ -187,11 +197,11 @@ namespace hexagon { virtual bool hasIntegratedCPP() const { return false; } virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const; + llvm::opt::ArgStringList &CmdArgs) const; virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; @@ -204,11 +214,11 @@ namespace hexagon { virtual bool isLinkJob() const { return true; } virtual void RenderExtraToolArgs(const JobAction &JA, - ArgStringList &CmdArgs) const; + llvm::opt::ArgStringList &CmdArgs) const; virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace hexagon. @@ -220,7 +230,8 @@ namespace darwin { class LLVM_LIBRARY_VISIBILITY DarwinTool : public Tool { virtual void anchor(); protected: - void AddDarwinArch(const ArgList &Args, ArgStringList &CmdArgs) const; + void AddDarwinArch(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const; const toolchains::Darwin &getDarwinToolChain() const { return reinterpret_cast<const toolchains::Darwin&>(getToolChain()); @@ -241,14 +252,15 @@ namespace darwin { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public DarwinTool { bool NeedsTempPath(const InputInfoList &Inputs) const; - void AddLinkArgs(Compilation &C, const ArgList &Args, - ArgStringList &CmdArgs, const InputInfoList &Inputs) const; + void AddLinkArgs(Compilation &C, const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs, + const InputInfoList &Inputs) const; public: Link(const ToolChain &TC) : DarwinTool("darwin::Link", "linker", TC) {} @@ -259,7 +271,7 @@ namespace darwin { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; @@ -272,7 +284,7 @@ namespace darwin { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; @@ -287,7 +299,7 @@ namespace darwin { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; @@ -301,7 +313,7 @@ namespace darwin { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; @@ -319,7 +331,7 @@ namespace openbsd { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -332,7 +344,7 @@ namespace openbsd { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace openbsd @@ -349,7 +361,7 @@ namespace bitrig { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -362,7 +374,7 @@ namespace bitrig { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace bitrig @@ -379,7 +391,7 @@ namespace freebsd { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -392,7 +404,7 @@ namespace freebsd { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace freebsd @@ -410,7 +422,7 @@ namespace netbsd { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -425,7 +437,7 @@ namespace netbsd { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace netbsd @@ -441,7 +453,7 @@ namespace gnutools { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -454,7 +466,7 @@ namespace gnutools { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } @@ -470,7 +482,7 @@ namespace minix { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -483,7 +495,7 @@ namespace minix { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace minix @@ -500,7 +512,7 @@ namespace solaris { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -513,7 +525,7 @@ namespace solaris { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace solaris @@ -530,7 +542,7 @@ namespace auroraux { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -543,7 +555,7 @@ namespace auroraux { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace auroraux @@ -560,7 +572,7 @@ namespace dragonfly { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; class LLVM_LIBRARY_VISIBILITY Link : public Tool { @@ -573,7 +585,7 @@ namespace dragonfly { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace dragonfly @@ -590,7 +602,7 @@ namespace visualstudio { virtual void ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, - const ArgList &TCArgs, + const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const; }; } // end namespace visualstudio