diff options
author | Roman Divacky <rdivacky@FreeBSD.org> | 2009-11-19 09:00:00 +0000 |
---|---|---|
committer | Roman Divacky <rdivacky@FreeBSD.org> | 2009-11-19 09:00:00 +0000 |
commit | f5bd02d290ff15268853e0456c130a1afa15e907 (patch) | |
tree | c7f5a7b6fd212399d821b83b22c1e6a42e8c4a0d /lib/Frontend | |
parent | b3d5a323a5ca92ea73443499cee2f15db1ff0fb3 (diff) | |
download | src-f5bd02d290ff15268853e0456c130a1afa15e907.tar.gz src-f5bd02d290ff15268853e0456c130a1afa15e907.zip |
Update clang to r89337.
Notes
Notes:
svn path=/vendor/clang/dist/; revision=199512
Diffstat (limited to 'lib/Frontend')
-rw-r--r-- | lib/Frontend/CompilerInvocation.cpp | 15 | ||||
-rw-r--r-- | lib/Frontend/InitPreprocessor.cpp | 11 | ||||
-rw-r--r-- | lib/Frontend/PCHReader.cpp | 5 |
3 files changed, 18 insertions, 13 deletions
diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index ed6d0b71a51b..b4a79c6d1efb 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -14,7 +14,6 @@ using namespace clang; void CompilerInvocation::CreateFromArgs(CompilerInvocation &Res, const llvm::SmallVectorImpl<llvm::StringRef> &Args) { - llvm::llvm_report_error("FIXME: Not yet implemented!"); } static const char *getAnalysisName(Analyses Kind) { @@ -83,8 +82,8 @@ static void AnalyzerOptsToArgs(const AnalyzerOptions &Opts, Res.push_back("-analyzer-display-progress"); if (Opts.EagerlyAssume) Res.push_back("-analyzer-eagerly-assume"); - if (Opts.PurgeDead) - Res.push_back("-analyzer-purge-dead"); + if (!Opts.PurgeDead) + Res.push_back("-analyzer-no-purge-dead"); if (Opts.TrimGraph) Res.push_back("-trim-egraph"); if (Opts.VisualizeEGDot) @@ -238,7 +237,7 @@ static const char *getActionName(frontend::ActionKind Kind) { static void FrontendOptsToArgs(const FrontendOptions &Opts, std::vector<std::string> &Res) { if (!Opts.DebugCodeCompletionPrinter) - Res.push_back("-code-completion-debug-printer=0"); + Res.push_back("-no-code-completion-debug-printer"); if (Opts.DisableFree) Res.push_back("-disable-free"); if (Opts.EmptyInputOnly) @@ -298,7 +297,7 @@ static void FrontendOptsToArgs(const FrontendOptions &Opts, static void HeaderSearchOptsToArgs(const HeaderSearchOptions &Opts, std::vector<std::string> &Res) { - if (Opts.Sysroot.empty()) { + if (Opts.Sysroot != "/") { Res.push_back("-isysroot"); Res.push_back(Opts.Sysroot); } @@ -394,8 +393,8 @@ static void LangOptsToArgs(const LangOptions &Opts, Res.push_back("-faltivec"); Res.push_back("-fexceptions"); Res.push_back(Opts.Exceptions ? "1" : "0"); - Res.push_back("-frtti"); - Res.push_back(Opts.Rtti ? "1" : "0"); + if (!Opts.Rtti) + Res.push_back("-fno-rtti"); if (!Opts.NeXTRuntime) Res.push_back("-fgnu-runtime"); if (Opts.Freestanding) @@ -411,7 +410,7 @@ static void LangOptsToArgs(const LangOptions &Opts, if (Opts.EmitAllDecls) Res.push_back("-femit-all-decls"); if (!Opts.MathErrno) - Res.push_back("-fmath-errno=0"); + Res.push_back("-fno-math-errno"); if (Opts.OverflowChecking) Res.push_back("-ftrapv"); if (Opts.HeinousExtensions) diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp index 4ee286dd265d..b77c24093f5f 100644 --- a/lib/Frontend/InitPreprocessor.cpp +++ b/lib/Frontend/InitPreprocessor.cpp @@ -237,6 +237,13 @@ static void DefineType(const char *MacroName, TargetInfo::IntType Ty, DefineBuiltinMacro(Buf, MacroBuf); } +static void DefineTypeWidth(const char *MacroName, TargetInfo::IntType Ty, + const TargetInfo &TI, std::vector<char> &Buf) { + char MacroBuf[60]; + sprintf(MacroBuf, "%s=%d", MacroName, TI.getTypeWidth(Ty)); + DefineBuiltinMacro(Buf, MacroBuf); +} + static void DefineExactWidthIntType(TargetInfo::IntType Ty, const TargetInfo &TI, std::vector<char> &Buf) { char MacroBuf[60]; @@ -381,10 +388,10 @@ static void InitializePredefinedMacros(const TargetInfo &TI, DefineTypeSize("__WCHAR_MAX__", TI.getWCharType(), TI, Buf); DefineTypeSize("__INTMAX_MAX__", TI.getIntMaxType(), TI, Buf); - DefineType("__INTMAX_TYPE__", TI.getIntMaxType(), Buf); - DefineType("__UINTMAX_TYPE__", TI.getUIntMaxType(), Buf); + DefineTypeWidth("__INTMAX_WIDTH__", TI.getIntMaxType(), TI, Buf); DefineType("__PTRDIFF_TYPE__", TI.getPtrDiffType(0), Buf); DefineType("__INTPTR_TYPE__", TI.getIntPtrType(), Buf); + DefineTypeWidth("__INTPTR_WIDTH__", TI.getIntPtrType(), TI, Buf); DefineType("__SIZE_TYPE__", TI.getSizeType(), Buf); DefineType("__WCHAR_TYPE__", TI.getWCharType(), Buf); DefineType("__WINT_TYPE__", TI.getWIntType(), Buf); diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp index ca7aa3260c62..c9679b7d1e7f 100644 --- a/lib/Frontend/PCHReader.cpp +++ b/lib/Frontend/PCHReader.cpp @@ -34,6 +34,7 @@ #include "llvm/Support/Compiler.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/ErrorHandling.h" +#include "llvm/System/Path.h" #include <algorithm> #include <iterator> #include <cstdio> @@ -1086,11 +1087,9 @@ void PCHReader::MaybeAddSystemRootToFilename(std::string &Filename) { if (!RelocatablePCH) return; - if (Filename.empty() || Filename[0] == '/' || Filename[0] == '<') + if (Filename.empty() || llvm::sys::Path(Filename).isAbsolute()) return; - std::string FIXME = Filename; - if (isysroot == 0) { // If no system root was given, default to '/' Filename.insert(Filename.begin(), '/'); |