diff options
author | rdivacky <rdivacky@FreeBSD.org> | 2010-01-15 15:39:40 +0000 |
---|---|---|
committer | rdivacky <rdivacky@FreeBSD.org> | 2010-01-15 15:39:40 +0000 |
commit | a3fa5c7f1b5e2ba4d6ec033dc0e2376326b05824 (patch) | |
tree | a6082d4d1d1e9ddaea09a6a04bb4a47da95d642d /lib/Driver | |
parent | bb1e3bc1e0be2b8f891db46457a8943451bf4d8b (diff) | |
download | FreeBSD-src-a3fa5c7f1b5e2ba4d6ec033dc0e2376326b05824.zip FreeBSD-src-a3fa5c7f1b5e2ba4d6ec033dc0e2376326b05824.tar.gz |
Update clang to r93512.
Diffstat (limited to 'lib/Driver')
-rw-r--r-- | lib/Driver/ToolChains.cpp | 12 | ||||
-rw-r--r-- | lib/Driver/ToolChains.h | 2 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 19 | ||||
-rw-r--r-- | lib/Driver/Types.cpp | 2 |
4 files changed, 13 insertions, 22 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index cc3febf..42657d9 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -203,8 +203,8 @@ void DarwinGCC::AddLinkRuntimeLibArgs(const ArgList &Args, CmdArgs.push_back("-lgcc_s.10.5"); } } else if (Args.hasArg(options::OPT_shared_libgcc) || - // FIXME: -fexceptions -fno-exceptions means no exceptions - Args.hasArg(options::OPT_fexceptions) || + Args.hasFlag(options::OPT_fexceptions, + options::OPT_fno_exceptions) || Args.hasArg(options::OPT_fgnu_runtime)) { // FIXME: This is probably broken on 10.3? if (isMacosxVersionLT(MacosxVersionMin, 10, 5)) @@ -516,10 +516,6 @@ DerivedArgList *Darwin::TranslateArgs(InputArgList &Args, return DAL; } -bool Darwin::IsMathErrnoDefault() const { - return false; -} - bool Darwin::IsUnwindTablesDefault() const { // FIXME: Gross; we should probably have some separate target // definition, possibly even reusing the one in clang. @@ -599,10 +595,6 @@ Tool &Generic_GCC::SelectTool(const Compilation &C, return *T; } -bool Generic_GCC::IsMathErrnoDefault() const { - return true; -} - bool Generic_GCC::IsUnwindTablesDefault() const { // FIXME: Gross; we should probably have some separate target // definition, possibly even reusing the one in clang. diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index be36344..374ad8c 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -38,7 +38,6 @@ public: virtual Tool &SelectTool(const Compilation &C, const JobAction &JA) const; - virtual bool IsMathErrnoDefault() const; virtual bool IsUnwindTablesDefault() const; virtual const char *GetDefaultRelocationModel() const; virtual const char *GetForcedPicModel() const; @@ -136,7 +135,6 @@ public: virtual Tool &SelectTool(const Compilation &C, const JobAction &JA) const; - virtual bool IsMathErrnoDefault() const; virtual bool IsBlocksDefault() const { // Blocks default to on for 10.6 (darwin10) and beyond. return (DarwinVersion[0] > 9); diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 8f0af21..010953d 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -837,11 +837,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, break; } - // -fmath-errno is default. - if (!Args.hasFlag(options::OPT_fmath_errno, + // -fno-math-errno is default. + if (Args.hasFlag(options::OPT_fmath_errno, options::OPT_fno_math_errno, - getToolChain().IsMathErrnoDefault())) - CmdArgs.push_back("-fno-math-errno"); + false)) + CmdArgs.push_back("-fmath-errno"); Arg *Unsupported; if ((Unsupported = Args.getLastArg(options::OPT_MG)) || @@ -935,6 +935,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(A->getValue(Args)); } + if (Arg *A = Args.getLastArg(options::OPT_ftabstop_EQ)) { + CmdArgs.push_back("-ftabstop"); + CmdArgs.push_back(A->getValue(Args)); + } + // Pass -fmessage-length=. CmdArgs.push_back("-fmessage-length"); if (Arg *A = Args.getLastArg(options::OPT_fmessage_length_EQ)) { @@ -2069,13 +2074,7 @@ void darwin::Link::AddLinkArgs(const ArgList &Args, Args.AddAllArgs(CmdArgs, options::OPT_umbrella); Args.AddAllArgs(CmdArgs, options::OPT_undefined); Args.AddAllArgs(CmdArgs, options::OPT_unexported__symbols__list); - Args.AddAllArgs(CmdArgs, options::OPT_weak__reference__mismatches); - if (!Args.hasArg(options::OPT_weak__reference__mismatches)) { - CmdArgs.push_back("-weak_reference_mismatches"); - CmdArgs.push_back("non-weak"); - } - Args.AddLastArg(CmdArgs, options::OPT_X_Flag); Args.AddAllArgs(CmdArgs, options::OPT_y); Args.AddLastArg(CmdArgs, options::OPT_w); diff --git a/lib/Driver/Types.cpp b/lib/Driver/Types.cpp index 433af03..60d86a6 100644 --- a/lib/Driver/Types.cpp +++ b/lib/Driver/Types.cpp @@ -77,6 +77,7 @@ bool types::isAcceptedByClang(ID Id) { case TY_Asm: case TY_C: case TY_PP_C: + case TY_CL: case TY_ObjC: case TY_PP_ObjC: case TY_CXX: case TY_PP_CXX: case TY_ObjCXX: case TY_PP_ObjCXX: @@ -133,6 +134,7 @@ types::ID types::lookupTypeForExtension(const char *Ext) { .Case("mm", TY_ObjCXX) .Case("cc", TY_CXX) .Case("CC", TY_CXX) + .Case("cl", TY_CL) .Case("cp", TY_CXX) .Case("hh", TY_CXXHeader) .Case("hpp", TY_CXXHeader) |