forked from OSchip/llvm-project
Revert r119045. It was failing on Windows.
llvm-svn: 119048
This commit is contained in:
parent
ca817a3c0c
commit
0526f52a49
|
@ -19,8 +19,9 @@
|
|||
|
||||
namespace clang {
|
||||
|
||||
/// Contains all the flags in LangOptions, default initialized to 0.
|
||||
class LangOptionsFlags {
|
||||
/// LangOptions - This class keeps track of the various options that can be
|
||||
/// enabled, which controls the dialect of C that is accepted.
|
||||
class LangOptions {
|
||||
public:
|
||||
unsigned Trigraphs : 1; // Trigraphs in source files.
|
||||
unsigned BCPLComment : 1; // BCPL-style '//' comments.
|
||||
|
@ -58,60 +59,60 @@ public:
|
|||
unsigned NoBuiltin : 1; // Do not use builtin functions (-fno-builtin)
|
||||
|
||||
unsigned ThreadsafeStatics : 1; // Whether static initializers are protected
|
||||
// by locks.
|
||||
// by locks.
|
||||
unsigned POSIXThreads : 1; // Compiling with POSIX thread support
|
||||
// (-pthread)
|
||||
// (-pthread)
|
||||
unsigned Blocks : 1; // block extension to C
|
||||
unsigned EmitAllDecls : 1; // Emit all declarations, even if
|
||||
// they are unused.
|
||||
// they are unused.
|
||||
unsigned MathErrno : 1; // Math functions must respect errno
|
||||
// (modulo the platform support).
|
||||
// (modulo the platform support).
|
||||
|
||||
unsigned HeinousExtensions : 1; // Extensions that we really don't like and
|
||||
// may be ripped out at any time.
|
||||
// may be ripped out at any time.
|
||||
|
||||
unsigned Optimize : 1; // Whether __OPTIMIZE__ should be defined.
|
||||
unsigned OptimizeSize : 1; // Whether __OPTIMIZE_SIZE__ should be
|
||||
// defined.
|
||||
// defined.
|
||||
unsigned Static : 1; // Should __STATIC__ be defined (as
|
||||
// opposed to __DYNAMIC__).
|
||||
// opposed to __DYNAMIC__).
|
||||
unsigned PICLevel : 2; // The value for __PIC__, if non-zero.
|
||||
|
||||
unsigned GNUInline : 1; // Should GNU inline semantics be
|
||||
// used (instead of C99 semantics).
|
||||
// used (instead of C99 semantics).
|
||||
unsigned NoInline : 1; // Should __NO_INLINE__ be defined.
|
||||
|
||||
unsigned ObjCGCBitmapPrint : 1; // Enable printing of gc's bitmap layout
|
||||
// for __weak/__strong ivars.
|
||||
// for __weak/__strong ivars.
|
||||
|
||||
unsigned AccessControl : 1; // Whether C++ access control should
|
||||
// be enabled.
|
||||
// be enabled.
|
||||
unsigned CharIsSigned : 1; // Whether char is a signed or unsigned type
|
||||
unsigned ShortWChar : 1; // Force wchar_t to be unsigned short int.
|
||||
|
||||
unsigned ShortEnums : 1; // The enum type will be equivalent to the
|
||||
// smallest integer type with enough room.
|
||||
// smallest integer type with enough room.
|
||||
|
||||
unsigned OpenCL : 1; // OpenCL C99 language extensions.
|
||||
|
||||
unsigned AssumeSaneOperatorNew : 1; // Whether to add __attribute__((malloc))
|
||||
// to the declaration of C++'s new
|
||||
// operators
|
||||
// to the declaration of C++'s new
|
||||
// operators
|
||||
unsigned ElideConstructors : 1; // Whether C++ copy constructors should be
|
||||
// elided if possible.
|
||||
// elided if possible.
|
||||
unsigned CatchUndefined : 1; // Generate code to check for undefined ops.
|
||||
unsigned DumpRecordLayouts : 1; /// Dump the layout of IRgen'd records.
|
||||
unsigned DumpVTableLayouts : 1; /// Dump the layouts of emitted vtables.
|
||||
unsigned NoConstantCFStrings : 1; // Do not do CF strings
|
||||
unsigned InlineVisibilityHidden : 1; // Whether inline C++ methods have
|
||||
// hidden visibility by default.
|
||||
// hidden visibility by default.
|
||||
|
||||
unsigned SpellChecking : 1; // Whether to perform spell-checking for error
|
||||
// recovery.
|
||||
// recovery.
|
||||
// FIXME: This is just a temporary option, for testing purposes.
|
||||
unsigned NoBitFieldTypeAlign : 1;
|
||||
|
||||
protected:
|
||||
private:
|
||||
// We declare multibit enums as unsigned because MSVC insists on making enums
|
||||
// signed. Set/Query these values using accessors.
|
||||
unsigned GC : 2; // Objective-C Garbage Collection modes.
|
||||
|
@ -119,13 +120,6 @@ protected:
|
|||
unsigned StackProtector : 2; // Whether stack protectors are on.
|
||||
unsigned SignedOverflowBehavior : 2; // How to handle signed integer overflow.
|
||||
|
||||
|
||||
LangOptionsFlags() { memset(this, 0, sizeof(this)); }
|
||||
};
|
||||
|
||||
/// This class keeps track of the various options that can be
|
||||
/// enabled, which controls the dialect of C that is accepted.
|
||||
class LangOptions : public LangOptionsFlags {
|
||||
public:
|
||||
unsigned InstantiationDepth; // Maximum template instantiation depth.
|
||||
|
||||
|
@ -149,19 +143,55 @@ public:
|
|||
std::string OverflowHandler;
|
||||
|
||||
LangOptions() {
|
||||
Trigraphs = BCPLComment = Bool = DollarIdents = AsmPreprocessor = 0;
|
||||
GNUMode = GNUKeywords = ImplicitInt = Digraphs = 0;
|
||||
HexFloats = 0;
|
||||
GC = ObjC1 = ObjC2 = ObjCNonFragileABI = ObjCNonFragileABI2 = 0;
|
||||
NoConstantCFStrings = 0; InlineVisibilityHidden = 0;
|
||||
C99 = Microsoft = Borland = CPlusPlus = CPlusPlus0x = 0;
|
||||
CXXOperatorNames = PascalStrings = WritableStrings = ConstStrings = 0;
|
||||
Exceptions = SjLjExceptions = Freestanding = NoBuiltin = 0;
|
||||
NeXTRuntime = 1;
|
||||
RTTI = 1;
|
||||
LaxVectorConversions = 1;
|
||||
HeinousExtensions = 0;
|
||||
AltiVec = OpenCL = StackProtector = 0;
|
||||
|
||||
SymbolVisibility = (unsigned) DefaultVisibility;
|
||||
|
||||
ThreadsafeStatics = 1;
|
||||
POSIXThreads = 0;
|
||||
Blocks = 0;
|
||||
EmitAllDecls = 0;
|
||||
MathErrno = 1;
|
||||
SignedOverflowBehavior = SOB_Undefined;
|
||||
|
||||
AssumeSaneOperatorNew = 1;
|
||||
AccessControl = 1;
|
||||
ElideConstructors = 1;
|
||||
|
||||
SignedOverflowBehavior = 0;
|
||||
ObjCGCBitmapPrint = 0;
|
||||
|
||||
InstantiationDepth = 1024;
|
||||
|
||||
Optimize = 0;
|
||||
OptimizeSize = 0;
|
||||
|
||||
Static = 0;
|
||||
PICLevel = 0;
|
||||
|
||||
GNUInline = 0;
|
||||
NoInline = 0;
|
||||
|
||||
CharIsSigned = 1;
|
||||
ShortWChar = 0;
|
||||
ShortEnums = 0;
|
||||
CatchUndefined = 0;
|
||||
DumpRecordLayouts = 0;
|
||||
DumpVTableLayouts = 0;
|
||||
SpellChecking = 1;
|
||||
NoBitFieldTypeAlign = 0;
|
||||
}
|
||||
|
||||
GCMode getGCMode() const { return (GCMode) GC; }
|
||||
|
|
Loading…
Reference in New Issue