clang 20.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
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/CurrentSourceLocExprScope.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/ExprObjC.h"
#include "clang/AST/ExprOpenMP.h"
#include "clang/AST/StmtOpenACC.h"
#include "clang/AST/StmtOpenMP.h"
#include "clang/AST/Type.h"
#include "clang/Basic/ABI.h"
#include "clang/Basic/CapturedStmt.h"
#include "clang/Basic/CodeGenOptions.h"
#include "clang/Basic/OpenMPKinds.h"
#include "clang/Basic/TargetInfo.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Support/Debug.h"
#include "llvm/Transforms/Utils/SanitizerStats.h"
#include <optional>

Go to the source code of this file.

Classes

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
 
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
 
struct  clang::CodeGen::CodeGenFunction::AwaitSuspendWrapperInfo
 
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...
 
struct  clang::CodeGen::CodeGenFunction::DeferredDeactivateCleanup
 
struct  clang::CodeGen::CodeGenFunction::CleanupDeactivationScope
 
class  clang::CodeGen::CodeGenFunction::CallLifetimeEnd
 
struct  clang::CodeGen::CodeGenFunction::LifetimeExtendedCleanupHeader
 Header for data within LifetimeExtendedCleanupStack. More...
 
class  clang::CodeGen::CodeGenFunction::ParentLoopDirectiveForScanRegion
 Manages parent directive for scan directives. More...
 
class  clang::CodeGen::CodeGenFunction::CGFPOptionsRAII
 
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::OMPMapVars
 The class used to assign some variables some temporarily addresses. More...
 
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::OMPLocalDeclMapRAII
 Save/restore original map of previously emitted local vars in case when we need to duplicate emission of the same code several times in the same function for OpenMP code. 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...
 
struct  clang::CodeGen::CodeGenFunction::CXXDefaultArgExprScope
 
class  clang::CodeGen::CodeGenFunction::ArrayInitLoopExprScope
 The scope of an ArrayInitLoopExpr. More...
 
class  clang::CodeGen::CodeGenFunction::InlinedInheritingConstructorScope
 
struct  clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers
 
class  clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::OMPAllocateCleanupTy
 Cleanup action for allocate support. More...
 
class  clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::OutlinedRegionBodyRAII
 RAII for preserving necessary info during Outlined region body codegen. More...
 
class  clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::InlinedRegionBodyRAII
 RAII for preserving necessary info during inlined region body codegen. More...
 
struct  clang::CodeGen::CodeGenFunction::VPtr
 Struct with all information about dynamic [sub]class needed to set vptr. More...
 
struct  clang::CodeGen::CodeGenFunction::AllocaTrackerRAII
 
struct  clang::CodeGen::CodeGenFunction::VlaSizePair
 
class  clang::CodeGen::CodeGenFunction::AutoVarEmission
 
class  clang::CodeGen::CodeGenFunction::ParamValue
 
class  clang::CodeGen::CodeGenFunction::OMPCancelStackRAII
 Controls insertion of cancellation exit blocks in worksharing constructs. More...
 
struct  clang::CodeGen::CodeGenFunction::OMPTargetDataInfo
 
class  clang::CodeGen::CodeGenFunction::ConstantEmission
 
struct  clang::CodeGen::CodeGenFunction::PrototypeWrapper
 
struct  clang::CodeGen::CodeGenFunction::MultiVersionResolverOption
 
struct  clang::CodeGen::CodeGenFunction::MultiVersionResolverOption::Conds
 

Namespaces

namespace  llvm
 Diagnostic wrappers for TextAPI types for error reporting.
 
namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::analyze_os_log
 
namespace  clang::CodeGen
 

Macros

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

Enumerations

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 }
 

Functions

llvm::fp::ExceptionBehavior clang::ToConstrainedExceptMD (LangOptions::FPExceptionModeKind Kind)
 

Macro Definition Documentation

◆ LIST_SANITIZER_CHECKS

#define LIST_SANITIZER_CHECKS
Value:
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(ImplicitConversion, implicit_conversion, 0) \
SANITIZER_CHECK(InvalidBuiltin, invalid_builtin, 0) \
SANITIZER_CHECK(InvalidObjCCast, invalid_objc_cast, 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(AlignmentAssumption, alignment_assumption, 0) \
SANITIZER_CHECK(VLABoundNotPositive, vla_bound_not_positive, 0) \
SANITIZER_CHECK(BoundsSafety, bounds_safety, 0)
#define SANITIZER_CHECK(Enum, Name, Version)

Definition at line 115 of file CodeGenFunction.h.

◆ SANITIZER_CHECK

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

Definition at line 144 of file CodeGenFunction.h.