[cfe-commits] r119048 - /cfe/trunk/include/clang/Basic/LangOptions.h
Ted Kremenek
kremenek at apple.com
Sun Nov 14 09:53:34 PST 2010
Author: kremenek
Date: Sun Nov 14 11:53:34 2010
New Revision: 119048
URL: http://llvm.org/viewvc/llvm-project?rev=119048&view=rev
Log:
Revert r119045. It was failing on Windows.
Modified:
cfe/trunk/include/clang/Basic/LangOptions.h
Modified: cfe/trunk/include/clang/Basic/LangOptions.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.h?rev=119048&r1=119047&r2=119048&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/LangOptions.h (original)
+++ cfe/trunk/include/clang/Basic/LangOptions.h Sun Nov 14 11:53:34 2010
@@ -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 @@
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 @@
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 @@
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; }
More information about the cfe-commits
mailing list