diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-08-23 08:43:39 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-08-23 08:43:39 +0000 |
commit | dcb4a1a6dd55fdf6c073d2761096f42e26be105a (patch) | |
tree | 88527791e318f55b8fdd7ea842d19bf12df7be40 | |
parent | e8b470d40c4d44b77c2efab3cb977beb23344ff6 (diff) |
Add TargetInfo::useNeXTRuntimeAsDefault
- Used to autoselect runtime when neither -fnext-runtime nor
-fgnu-runtime is specified.
- Default impl is false, all darwin targets set it to true.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55231 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | Driver/clang.cpp | 8 | ||||
-rw-r--r-- | include/clang/Basic/TargetInfo.h | 6 | ||||
-rw-r--r-- | lib/Basic/Targets.cpp | 7 |
3 files changed, 15 insertions, 6 deletions
diff --git a/Driver/clang.cpp b/Driver/clang.cpp index c271f51233..419fa980c6 100644 --- a/Driver/clang.cpp +++ b/Driver/clang.cpp @@ -387,7 +387,8 @@ NeXTRuntime("fnext-runtime", // -trigraphs // -fdollars-in-identifiers // -fpascal-strings -static void InitializeLanguageStandard(LangOptions &Options, LangKind LK) { +static void InitializeLanguageStandard(LangOptions &Options, LangKind LK, + TargetInfo *Target) { if (LangStd == lang_unspecified) { // Based on the base language, pick one. switch (LK) { @@ -454,8 +455,7 @@ static void InitializeLanguageStandard(LangOptions &Options, LangKind LK) { } else if (GNURuntime) { Options.NeXTRuntime = 0; } else { - // FIXME: Should autoselect based on platform. - Options.NeXTRuntime = 0; + Options.NeXTRuntime = Target->useNeXTRuntimeAsDefault(); } } @@ -1201,7 +1201,7 @@ int main(int argc, char **argv) { InitializeBaseLanguage(); LangKind LK = GetLanguage(InFile); InitializeLangOptions(LangInfo, LK); - InitializeLanguageStandard(LangInfo, LK); + InitializeLanguageStandard(LangInfo, LK, Target.get()); InitializeGCMode(LangInfo); // Process the -I options and set them in the HeaderInfo. diff --git a/include/clang/Basic/TargetInfo.h b/include/clang/Basic/TargetInfo.h index bb687d2660..a8edf47041 100644 --- a/include/clang/Basic/TargetInfo.h +++ b/include/clang/Basic/TargetInfo.h @@ -206,8 +206,10 @@ public: const char * const Register; }; - virtual bool useGlobalsForAutomaticVariables() const {return false;} - + virtual bool useGlobalsForAutomaticVariables() const { return false; } + + virtual bool useNeXTRuntimeAsDefault() const { return false; } + protected: virtual void getGCCRegNames(const char * const *&Names, unsigned &NumNames) const = 0; diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index a04ce362ec..fae0a71d60 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -501,6 +501,8 @@ public: PPC32TargetInfo::getTargetDefines(Defines); getDarwinDefines(Defines); } + + virtual bool useNeXTRuntimeAsDefault() const { return true; } }; } // end anonymous namespace. @@ -512,6 +514,8 @@ public: PPC64TargetInfo::getTargetDefines(Defines); getDarwinDefines(Defines); } + + virtual bool useNeXTRuntimeAsDefault() const { return true; } }; } // end anonymous namespace. @@ -656,6 +660,7 @@ public: X86_32TargetInfo::getTargetDefines(Defines); getDarwinDefines(Defines); } + virtual bool useNeXTRuntimeAsDefault() const { return true; } }; } // end anonymous namespace @@ -735,6 +740,8 @@ public: X86_64TargetInfo::getTargetDefines(Defines); getDarwinDefines(Defines); } + + virtual bool useNeXTRuntimeAsDefault() const { return true; } }; } // end anonymous namespace. |