clang  3.9.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  DefaultCallingConvention {
  DCC_None, DCC_CDecl, DCC_FastCall, DCC_StdCall,
  DCC_VectorCall
}
 
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...
 
bool isNoBuiltinFunc (const char *Name) const
 Is this a libc/libm function that is no longer recognized as a builtin because a -fno-builtin-* option has been specified? 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, of which the main source file is a part. 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...
 
std::vector< std::string > NoBuiltinFuncs
 A list of all -fno-builtin-* function names (e.g., memset). More...
 
std::vector< llvm::Triple > OMPTargetTriples
 Triples of the OpenMP targets that the host code codegen should take into account in order to generate accurate offloading descriptors. More...
 
std::string OMPHostIRFile
 Name of the IR file that contains the result of the OpenMP target host code generation. 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 76 of file LangOptions.h.

Enumerator
DCC_None 
DCC_CDecl 
DCC_FastCall 
DCC_StdCall 
DCC_VectorCall 

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 78 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 18 of file LangOptions.cpp.

Member Function Documentation

bool clang::LangOptions::isCompatibleWithMSVC ( MSVCMajorVersion  MajorVersion) const
inline
bool LangOptions::isNoBuiltinFunc ( const char *  Name) const

Is this a libc/libm function that is no longer recognized as a builtin because a -fno-builtin-* option has been specified?

Definition at line 39 of file LangOptions.cpp.

References NoBuiltinFuncs.

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

Definition at line 138 of file LangOptions.h.

References SOB_Defined.

Referenced by DiagnoseBadShiftValues(), and emitPointerArithmetic().

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

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

Definition at line 24 of file LangOptions.cpp.

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

Member Data Documentation

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

The name of the current module, of which the main source file is a part.

If CompilingModule is set, we are compiling the interface of this module, otherwise we are compiling an implementation file of it.

Definition at line 107 of file LangOptions.h.

Referenced by clang::Sema::ActOnModuleImport(), clang::Sema::ActOnModuleInclude(), clang::GenerateModuleAction::BeginSourceFileAction(), clang::GenerateModuleAction::ComputeASTConsumerArguments(), clang::ModuleMap::findOrCreateModule(), clang::Preprocessor::getModuleForLocation(), 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 113 of file LangOptions.h.

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

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

A list of all -fno-builtin-* function names (e.g., memset).

Definition at line 119 of file LangOptions.h.

Referenced by isNoBuiltinFunc(), and ParseLangArgs().

std::string clang::LangOptions::ObjCConstantStringClass

Definition at line 95 of file LangOptions.h.

Referenced by ParseLangArgs().

clang::ObjCRuntime clang::LangOptions::ObjCRuntime
std::string clang::LangOptions::OMPHostIRFile

Name of the IR file that contains the result of the OpenMP target host code generation.

Definition at line 127 of file LangOptions.h.

Referenced by ParseLangArgs().

std::vector<llvm::Triple> clang::LangOptions::OMPTargetTriples
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 101 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 91 of file LangOptions.h.

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


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