clang  3.7.0
Public Types | Public Member Functions | Public Attributes | List of all members
clang::LangOptions Class Reference

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that is accepted. More...

#include <LangOptions.h>

Inheritance diagram for clang::LangOptions:
[legend]
Collaboration diagram for clang::LangOptions:
[legend]

Public Types

enum  GCMode { NonGC, GCOnly, HybridGC }
 
enum  StackProtectorMode { SSPOff, SSPOn, SSPStrong, SSPReq }
 
enum  SignedOverflowBehaviorTy { SOB_Undefined, SOB_Defined, SOB_Trapping }
 
enum  PragmaMSPointersToMembersKind { PPTMK_BestCase, PPTMK_FullGeneralitySingleInheritance, PPTMK_FullGeneralityMultipleInheritance, PPTMK_FullGeneralityVirtualInheritance }
 
enum  AddrSpaceMapMangling { ASMM_Target, ASMM_On, ASMM_Off }
 
enum  MSVCMajorVersion { MSVC2010 = 16, MSVC2012 = 17, MSVC2013 = 18, MSVC2015 = 19 }
 
typedef clang::Visibility Visibility
 

Public Member Functions

 LangOptions ()
 
bool isSignedOverflowDefined () const
 
bool isSubscriptPointerArithmetic () const
 
bool isCompatibleWithMSVC (MSVCMajorVersion MajorVersion) const
 
void resetNonModularOptions ()
 Reset all of the options that are not considered when building a module. More...
 

Public Attributes

SanitizerSet Sanitize
 Set of enabled sanitizers. More...
 
std::vector< std::string > SanitizerBlacklistFiles
 Paths to blacklist files specifying which objects (files, functions, variables) should not be instrumented. More...
 
clang::ObjCRuntime ObjCRuntime
 
std::string ObjCConstantStringClass
 
std::string OverflowHandler
 The name of the handler function to be called when -ftrapv is specified. More...
 
std::string CurrentModule
 The name of the current module. More...
 
std::string ImplementationOfModule
 The name of the module that the translation unit is an implementation of. Prevents semantic imports, but does not otherwise treat this as the CurrentModule. More...
 
std::vector< std::string > ModuleFeatures
 The names of any features to enable in module 'requires' decls in addition to the hard-coded list in Module.cpp and the target features. More...
 
CommentOptions CommentOpts
 Options for parsing comments. More...
 

Detailed Description

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that is accepted.

Definition at line 48 of file LangOptions.h.

Member Typedef Documentation

Definition at line 50 of file LangOptions.h.

Member Enumeration Documentation

Enumerator
ASMM_Target 
ASMM_On 
ASMM_Off 

Definition at line 68 of file LangOptions.h.

Enumerator
NonGC 
GCOnly 
HybridGC 

Definition at line 52 of file LangOptions.h.

Enumerator
MSVC2010 
MSVC2012 
MSVC2013 
MSVC2015 

Definition at line 70 of file LangOptions.h.

Enumerator
PPTMK_BestCase 
PPTMK_FullGeneralitySingleInheritance 
PPTMK_FullGeneralityMultipleInheritance 
PPTMK_FullGeneralityVirtualInheritance 

Definition at line 61 of file LangOptions.h.

Enumerator
SOB_Undefined 
SOB_Defined 
SOB_Trapping 

Definition at line 55 of file LangOptions.h.

Enumerator
SSPOff 
SSPOn 
SSPStrong 
SSPReq 

Definition at line 53 of file LangOptions.h.

Constructor & Destructor Documentation

LangOptions::LangOptions ( )

Definition at line 17 of file LangOptions.cpp.

Member Function Documentation

bool clang::LangOptions::isCompatibleWithMSVC ( MSVCMajorVersion  MajorVersion) const
inline
bool clang::LangOptions::isSignedOverflowDefined ( ) const
inline

Definition at line 121 of file LangOptions.h.

References SOB_Defined.

Referenced by emitPointerArithmetic().

bool clang::LangOptions::isSubscriptPointerArithmetic ( ) const
inline

Definition at line 125 of file LangOptions.h.

References clang::ObjCRuntime::isSubscriptPointerArithmetic().

void LangOptions::resetNonModularOptions ( )

Reset all of the options that are not considered when building a module.

Definition at line 23 of file LangOptions.cpp.

References clang::SanitizerSet::clear(), CurrentModule, ImplementationOfModule, Sanitize, and SanitizerBlacklistFiles.

Member Data Documentation

CommentOptions clang::LangOptions::CommentOpts
std::string clang::LangOptions::CurrentModule
std::string clang::LangOptions::ImplementationOfModule

The name of the module that the translation unit is an implementation of. Prevents semantic imports, but does not otherwise treat this as the CurrentModule.

Definition at line 101 of file LangOptions.h.

Referenced by clang::Sema::ActOnModuleImport(), clang::CompilerInstance::loadModule(), ParseLangArgs(), and resetNonModularOptions().

std::vector<std::string> clang::LangOptions::ModuleFeatures

The names of any features to enable in module 'requires' decls in addition to the hard-coded list in Module.cpp and the target features.

This list is sorted.

Definition at line 107 of file LangOptions.h.

Referenced by checkLanguageOptions(), hasFeature(), and ParseLangArgs().

std::string clang::LangOptions::ObjCConstantStringClass

Definition at line 87 of file LangOptions.h.

Referenced by ParseLangArgs().

clang::ObjCRuntime clang::LangOptions::ObjCRuntime
std::string clang::LangOptions::OverflowHandler

The name of the handler function to be called when -ftrapv is specified.

If none is specified, abort (GCC-compatible behaviour).

Definition at line 93 of file LangOptions.h.

Referenced by ParseLangArgs().

SanitizerSet clang::LangOptions::Sanitize
std::vector<std::string> clang::LangOptions::SanitizerBlacklistFiles

Paths to blacklist files specifying which objects (files, functions, variables) should not be instrumented.

Definition at line 83 of file LangOptions.h.

Referenced by addDataFlowSanitizerPass(), ParseLangArgs(), and resetNonModularOptions().


The documentation for this class was generated from the following files: