clang  6.0.0svn
Classes | Namespaces | Macros | Enumerations
CodeGenFunction.h File Reference
#include "CGBuilder.h"
#include "CGDebugInfo.h"
#include "CGLoopInfo.h"
#include "CGValue.h"
#include "CodeGenModule.h"
#include "CodeGenPGO.h"
#include "EHScopeStack.h"
#include "VarBypassDetector.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/ExprOpenMP.h"
#include "clang/AST/Type.h"
#include "clang/Basic/ABI.h"
#include "clang/Basic/CapturedStmt.h"
#include "clang/Basic/OpenMPKinds.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Frontend/CodeGenOptions.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Utils/SanitizerStats.h"
Include dependency graph for CodeGenFunction.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


class  clang::CodeGen::CodeGenFunction
 CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code. More...
struct  clang::CodeGen::CodeGenFunction::JumpDest
 A jump destination is an abstract label, branching to which may require a jump out through normal cleanups. More...
struct  clang::CodeGen::CodeGenFunction::CGCoroInfo
class  clang::CodeGen::CodeGenFunction::CGCapturedStmtInfo
 API for captured statement code generation. More...
class  clang::CodeGen::CodeGenFunction::CGCapturedStmtRAII
 RAII for correct setting/restoring of CapturedStmtInfo. More...
class  clang::CodeGen::CodeGenFunction::AbstractCallee
 An abstract representation of regular/ObjC call/message targets. More...
class  clang::CodeGen::CodeGenFunction::SanitizerScope
 RAII object to set/unset CodeGenFunction::IsSanitizerScope. More...
class  clang::CodeGen::CodeGenFunction::CallLifetimeEnd
struct  clang::CodeGen::CodeGenFunction::LifetimeExtendedCleanupHeader
 Header for data within LifetimeExtendedCleanupStack. More...
class  clang::CodeGen::CodeGenFunction::FinallyInfo
 A class controlling the emission of a finally block. More...
class  clang::CodeGen::CodeGenFunction::RunCleanupsScope
 Enters a new scope for capturing cleanups, all of which will be executed once the scope is exited. More...
class  clang::CodeGen::CodeGenFunction::LexicalScope
class  clang::CodeGen::CodeGenFunction::OMPPrivateScope
 The scope used to remap some variables as private in the OpenMP loop body (or other captured region emitted without outlining), and to restore old vars back on exit. More...
class  clang::CodeGen::CodeGenFunction::ConditionalEvaluation
 An object to manage conditionally-evaluated expressions. More...
class  clang::CodeGen::CodeGenFunction::StmtExprEvaluation
 An RAII object to record that we're evaluating a statement expression. More...
class  clang::CodeGen::CodeGenFunction::PeepholeProtection
 An object which temporarily prevents a value from being destroyed by aggressive peephole optimizations that assume that all uses of a value have been realized in the IR. More...
class  clang::CodeGen::CodeGenFunction::OpaqueValueMappingData
 A non-RAII class containing all the information about a bound opaque value. More...
class  clang::CodeGen::CodeGenFunction::OpaqueValueMapping
 An RAII object to set (and then clear) a mapping for an OpaqueValueExpr. More...
class  clang::CodeGen::CodeGenFunction::FieldConstructionScope
 A scope within which we are constructing the fields of an object which might use a CXXDefaultInitExpr. More...
class  clang::CodeGen::CodeGenFunction::CXXDefaultInitExprScope
 The scope of a CXXDefaultInitExpr. More...
class  clang::CodeGen::CodeGenFunction::ArrayInitLoopExprScope
 The scope of an ArrayInitLoopExpr. More...
class  clang::CodeGen::CodeGenFunction::InlinedInheritingConstructorScope
struct  clang::CodeGen::CodeGenFunction::VPtr
 Struct with all informations about dynamic [sub]class needed to set vptr. More...
class  clang::CodeGen::CodeGenFunction::AutoVarEmission
class  clang::CodeGen::CodeGenFunction::ParamValue
class  clang::CodeGen::CodeGenFunction::ConstantEmission
struct  clang::CodeGen::DominatingLLVMValue
 Helper class with most of the code for saving a value for a conditional expression cleanup. More...
struct  clang::CodeGen::DominatingPointer< T, true >
 A partial specialization of DominatingValue for llvm::Values that might be llvm::Instructions. More...
struct  clang::CodeGen::DominatingValue< Address >
 A specialization of DominatingValue for Address. More...
struct  clang::CodeGen::DominatingValue< Address >::saved_type
struct  clang::CodeGen::DominatingValue< RValue >
 A specialization of DominatingValue for RValue. More...
class  clang::CodeGen::DominatingValue< RValue >::saved_type


 DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators.
 Dataflow Directional Tag Classes.


#define SANITIZER_CHECK(Enum, Name, Version)   Enum,


enum  clang::CodeGen::TypeEvaluationKind { clang::CodeGen::TEK_Scalar, clang::CodeGen::TEK_Complex, clang::CodeGen::TEK_Aggregate }
 The kind of evaluation to perform on values of a particular type. More...
enum  clang::CodeGen::SanitizerHandler { clang::CodeGen::LIST_SANITIZER_CHECKS }

Macro Definition Documentation


SANITIZER_CHECK(AddOverflow, add_overflow, 0) \
SANITIZER_CHECK(BuiltinUnreachable, builtin_unreachable, 0) \
SANITIZER_CHECK(CFICheckFail, cfi_check_fail, 0) \
SANITIZER_CHECK(DivremOverflow, divrem_overflow, 0) \
SANITIZER_CHECK(DynamicTypeCacheMiss, dynamic_type_cache_miss, 0) \
SANITIZER_CHECK(FloatCastOverflow, float_cast_overflow, 0) \
SANITIZER_CHECK(FunctionTypeMismatch, function_type_mismatch, 0) \
SANITIZER_CHECK(InvalidBuiltin, invalid_builtin, 0) \
SANITIZER_CHECK(LoadInvalidValue, load_invalid_value, 0) \
SANITIZER_CHECK(MissingReturn, missing_return, 0) \
SANITIZER_CHECK(MulOverflow, mul_overflow, 0) \
SANITIZER_CHECK(NegateOverflow, negate_overflow, 0) \
SANITIZER_CHECK(NullabilityArg, nullability_arg, 0) \
SANITIZER_CHECK(NullabilityReturn, nullability_return, 1) \
SANITIZER_CHECK(NonnullArg, nonnull_arg, 0) \
SANITIZER_CHECK(NonnullReturn, nonnull_return, 1) \
SANITIZER_CHECK(OutOfBounds, out_of_bounds, 0) \
SANITIZER_CHECK(PointerOverflow, pointer_overflow, 0) \
SANITIZER_CHECK(ShiftOutOfBounds, shift_out_of_bounds, 0) \
SANITIZER_CHECK(SubOverflow, sub_overflow, 0) \
SANITIZER_CHECK(TypeMismatch, type_mismatch, 1) \
SANITIZER_CHECK(VLABoundNotPositive, vla_bound_not_positive, 0)
#define SANITIZER_CHECK(Enum, Name, Version)

Definition at line 110 of file CodeGenFunction.h.


#define SANITIZER_CHECK (   Enum,
)    Enum,

Definition at line 135 of file CodeGenFunction.h.