forked from OSchip/llvm-project
replace useNeXTRuntimeAsDefault with a generic hook that allows targets
to specify their default language options. llvm-svn: 60561
This commit is contained in:
parent
123a35a81c
commit
c7c6dd4d97
|
@ -497,6 +497,8 @@ Ansi("ansi", llvm::cl::desc("Equivalent to specifying -std=c89."));
|
|||
// -fpascal-strings
|
||||
static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
|
||||
TargetInfo *Target) {
|
||||
// Allow the target to set the default the langauge options as it sees fit.
|
||||
Target->getDefaultLangOptions(Options);
|
||||
|
||||
if (Ansi) // "The -ansi option is equivalent to -std=c89."
|
||||
LangStd = lang_c89;
|
||||
|
@ -574,13 +576,11 @@ static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
|
|||
Options.LaxVectorConversions = LaxVectorConversions;
|
||||
Options.Exceptions = Exceptions;
|
||||
|
||||
if (NeXTRuntime) {
|
||||
// Override the default runtime if the user requested it.
|
||||
if (NeXTRuntime)
|
||||
Options.NeXTRuntime = 1;
|
||||
} else if (GNURuntime) {
|
||||
else if (GNURuntime)
|
||||
Options.NeXTRuntime = 0;
|
||||
} else {
|
||||
Options.NeXTRuntime = Target->useNeXTRuntimeAsDefault();
|
||||
}
|
||||
}
|
||||
|
||||
static llvm::cl::opt<bool>
|
||||
|
@ -1524,8 +1524,8 @@ int main(int argc, char **argv) {
|
|||
InitializeBaseLanguage();
|
||||
LangKind LK = GetLanguage(InFile);
|
||||
bool PCH = InitializeLangOptions(LangInfo, LK);
|
||||
InitializeLanguageStandard(LangInfo, LK, Target.get());
|
||||
InitializeGCMode(LangInfo);
|
||||
InitializeLanguageStandard(LangInfo, LK, Target.get());
|
||||
|
||||
// Process the -I options and set them in the HeaderInfo.
|
||||
HeaderSearch HeaderInfo(FileMgr);
|
||||
|
|
|
@ -24,6 +24,7 @@ namespace clang {
|
|||
|
||||
class Diagnostic;
|
||||
class SourceManager;
|
||||
class LangOptions;
|
||||
|
||||
namespace Builtin { struct Info; }
|
||||
|
||||
|
@ -228,7 +229,10 @@ public:
|
|||
|
||||
virtual bool useGlobalsForAutomaticVariables() const { return false; }
|
||||
|
||||
virtual bool useNeXTRuntimeAsDefault() const { return false; }
|
||||
/// getDefaultLangOptions - Allow the target to specify default settings for
|
||||
/// various language options. These may be overridden by command line
|
||||
/// options.
|
||||
virtual void getDefaultLangOptions(LangOptions &Opts) {}
|
||||
|
||||
protected:
|
||||
virtual uint64_t getPointerWidthV(unsigned AddrSpace) const {
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "clang/AST/Builtins.h"
|
||||
#include "clang/AST/TargetBuiltins.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "clang/Basic/LangOptions.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/ADT/APFloat.h"
|
||||
using namespace clang;
|
||||
|
@ -366,7 +367,12 @@ public:
|
|||
getDarwinDefines(Defines, getTargetTriple());
|
||||
}
|
||||
|
||||
virtual bool useNeXTRuntimeAsDefault() const { return true; }
|
||||
/// getDefaultLangOptions - Allow the target to specify default settings for
|
||||
/// various language options. These may be overridden by command line
|
||||
/// options.
|
||||
virtual void getDefaultLangOptions(LangOptions &Opts) {
|
||||
Opts.NeXTRuntime = true;
|
||||
}
|
||||
};
|
||||
} // end anonymous namespace.
|
||||
|
||||
|
@ -379,7 +385,12 @@ public:
|
|||
getDarwinDefines(Defines, getTargetTriple());
|
||||
}
|
||||
|
||||
virtual bool useNeXTRuntimeAsDefault() const { return true; }
|
||||
/// getDefaultLangOptions - Allow the target to specify default settings for
|
||||
/// various language options. These may be overridden by command line
|
||||
/// options.
|
||||
virtual void getDefaultLangOptions(LangOptions &Opts) {
|
||||
Opts.NeXTRuntime = true;
|
||||
}
|
||||
};
|
||||
} // end anonymous namespace.
|
||||
|
||||
|
@ -526,7 +537,12 @@ public:
|
|||
X86_32TargetInfo::getTargetDefines(Defines);
|
||||
getDarwinDefines(Defines, getTargetTriple());
|
||||
}
|
||||
virtual bool useNeXTRuntimeAsDefault() const { return true; }
|
||||
/// getDefaultLangOptions - Allow the target to specify default settings for
|
||||
/// various language options. These may be overridden by command line
|
||||
/// options.
|
||||
virtual void getDefaultLangOptions(LangOptions &Opts) {
|
||||
Opts.NeXTRuntime = true;
|
||||
}
|
||||
};
|
||||
} // end anonymous namespace
|
||||
|
||||
|
@ -670,7 +686,12 @@ public:
|
|||
getDarwinDefines(Defines, getTargetTriple());
|
||||
}
|
||||
|
||||
virtual bool useNeXTRuntimeAsDefault() const { return true; }
|
||||
/// getDefaultLangOptions - Allow the target to specify default settings for
|
||||
/// various language options. These may be overridden by command line
|
||||
/// options.
|
||||
virtual void getDefaultLangOptions(LangOptions &Opts) {
|
||||
Opts.NeXTRuntime = true;
|
||||
}
|
||||
};
|
||||
} // end anonymous namespace.
|
||||
|
||||
|
|
Loading…
Reference in New Issue