clang
8.0.0
|
#include "CodeGenFunction.h"
#include "CGCXXABI.h"
#include "CGObjCRuntime.h"
#include "CGOpenMPRuntime.h"
#include "clang/Basic/CodeGenOptions.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/Support/Path.h"
Go to the source code of this file.
Functions | |
static void | EmitDeclInit (CodeGenFunction &CGF, const VarDecl &D, ConstantAddress DeclPtr) |
static void | EmitDeclDestroy (CodeGenFunction &CGF, const VarDecl &D, ConstantAddress Addr) |
Emit code to cause the destruction of the given variable with static storage duration. More... | |
static void | EmitDeclInvariant (CodeGenFunction &CGF, const VarDecl &D, llvm::Constant *Addr) |
Emit code to cause the variable at the given address to be considered as constant from this point onwards. More... | |
|
static |
Emit code to cause the destruction of the given variable with static storage duration.
Definition at line 68 of file CGDeclCXX.cpp.
References clang::CodeGen::CGCXXABI::canCallMismatchedFunctionType(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::Complete, clang::CodeGen::CodeGenTypes::ConvertType(), clang::QualType::DK_cxx_destructor, clang::QualType::DK_none, clang::QualType::DK_nontrivial_c_struct, clang::QualType::DK_objc_strong_lifetime, clang::QualType::DK_objc_weak_lifetime, clang::Dtor_Complete, clang::CodeGen::CodeGenFunction::generateDestroyHelper(), clang::CodeGen::CodeGenModule::getAddrOfCXXStructor(), clang::Type::getAsCXXRecordDecl(), clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CodeGen::CodeGenFunction::getContext(), clang::CodeGen::CodeGenModule::getCXXABI(), clang::CodeGen::CodeGenFunction::getDestroyer(), clang::CXXRecordDecl::getDestructor(), clang::CodeGen::ConstantAddress::getPointer(), clang::VarDecl::getTLSKind(), clang::ValueDecl::getType(), clang::CodeGen::CodeGenFunction::getTypes(), clang::CodeGen::CGCXXABI::HasThisReturn(), clang::CXXRecordDecl::hasTrivialDestructor(), clang::CodeGen::CodeGenTypeCache::Int8PtrTy, clang::QualType::isDestructedType(), clang::VarDecl::isNoDestroy(), clang::CodeGen::CodeGenFunction::needsEHCleanup(), and clang::CodeGen::CGCXXABI::registerGlobalDtor().
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit().
|
static |
Definition at line 27 of file CGDeclCXX.cpp.
References clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::AggValueSlot::DoesNotNeedGCBarriers, clang::CodeGen::AggValueSlot::DoesNotOverlap, clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitComplexExprIntoLValue(), clang::CodeGen::CGObjCRuntime::EmitObjCGlobalAssign(), clang::CodeGen::CGObjCRuntime::EmitObjCWeakAssign(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::AggValueSlot::forLValue(), clang::CodeGen::CodeGenFunction::getContext(), clang::CodeGen::CodeGenFunction::getEvaluationKind(), clang::VarDecl::getInit(), clang::ASTContext::getLangOpts(), clang::CodeGen::CodeGenModule::getObjCRuntime(), clang::VarDecl::getTLSKind(), clang::ValueDecl::getType(), clang::VarDecl::hasGlobalStorage(), clang::VarDecl::hasLocalStorage(), clang::CodeGen::AggValueSlot::IsDestructed, clang::CodeGen::AggValueSlot::IsNotAliased, clang::CodeGen::LValue::isObjCStrong(), clang::CodeGen::LValue::isObjCWeak(), clang::Type::isReferenceType(), clang::CodeGen::CodeGenFunction::MakeAddrLValue(), clang::CodeGen::TEK_Aggregate, clang::CodeGen::TEK_Complex, and clang::CodeGen::TEK_Scalar.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit().
|
static |
Emit code to cause the variable at the given address to be considered as constant from this point onwards.
Definition at line 138 of file CGDeclCXX.cpp.
References clang::CodeGen::CodeGenFunction::EmitInvariantStart(), clang::CodeGen::CodeGenFunction::getContext(), clang::ValueDecl::getType(), and clang::ASTContext::getTypeSizeInChars().
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit().