clang 22.0.0git
CGDeclCXX.cpp File Reference
#include "CGCXXABI.h"
#include "CGDebugInfo.h"
#include "CGHLSLRuntime.h"
#include "CGObjCRuntime.h"
#include "CGOpenMPRuntime.h"
#include "CodeGenFunction.h"
#include "TargetInfo.h"
#include "clang/AST/Attr.h"
#include "clang/Basic/LangOptions.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.
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.
static SmallString< 128 > getTransformedFileName (llvm::Module &M)
static std::string getPrioritySuffix (unsigned int Priority)

Function Documentation

◆ EmitDeclDestroy()

void EmitDeclDestroy ( CodeGenFunction & CGF,
const VarDecl & D,
ConstantAddress Addr )
static

Emit code to cause the destruction of the given variable with static storage duration.

Definition at line 72 of file CGDeclCXX.cpp.

References clang::Addr, clang::CodeGen::CGCXXABI::canCallMismatchedFunctionType(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::ConvertTypeForMem(), 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::Func, clang::CodeGen::CodeGenFunction::generateDestroyHelper(), clang::CodeGen::CodeGenModule::getAddrAndTypeOfCXXStructor(), clang::Qualifiers::getAddressSpace(), clang::CodeGen::TargetCodeGenInfo::getAddrSpaceOfCxaAtexitPtrParam(), clang::Type::getAsCXXRecordDecl(), clang::CodeGen::CodeGenModule::getCodeGenOpts(), clang::CodeGen::CodeGenFunction::getContext(), clang::CodeGen::CodeGenModule::getContext(), clang::CodeGen::CodeGenModule::getCXXABI(), clang::CodeGen::CodeGenFunction::getDestroyer(), clang::ASTContext::getLangOpts(), clang::CodeGen::CodeGenModule::getLLVMContext(), clang::QualType::getQualifiers(), clang::ASTContext::getTargetAddressSpace(), clang::CodeGen::CodeGenModule::getTargetCodeGenInfo(), clang::VarDecl::getTLSKind(), clang::ValueDecl::getType(), clang::CodeGen::CodeGenTypeCache::Int8PtrTy, clang::VarDecl::needsDestruction(), clang::CodeGen::CodeGenFunction::needsEHCleanup(), and clang::CodeGen::CGCXXABI::registerGlobalDtor().

Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit().

◆ EmitDeclInit()

◆ EmitDeclInvariant()

void EmitDeclInvariant ( CodeGenFunction & CGF,
const VarDecl & D,
llvm::Constant * Addr )
static

Emit code to cause the variable at the given address to be considered as constant from this point onwards.

Definition at line 152 of file CGDeclCXX.cpp.

References clang::Addr, clang::CodeGen::CodeGenFunction::EmitInvariantStart(), clang::CodeGen::CodeGenFunction::getContext(), clang::ValueDecl::getType(), and clang::ASTContext::getTypeSizeInChars().

Referenced by clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit().

◆ getPrioritySuffix()

std::string getPrioritySuffix ( unsigned int Priority)
static

Definition at line 849 of file CGDeclCXX.cpp.

◆ getTransformedFileName()

SmallString< 128 > getTransformedFileName ( llvm::Module & M)
static

Definition at line 833 of file CGDeclCXX.cpp.

References clang::FileName, and clang::isPreprocessingNumberBody().