|
clang 22.0.0git
|
#include "Address.h"#include "CIRGenCXXABI.h"#include "CIRGenConstantEmitter.h"#include "CIRGenModule.h"#include "CIRGenRecordLayout.h"#include "mlir/IR/Attributes.h"#include "mlir/IR/BuiltinAttributeInterfaces.h"#include "mlir/IR/BuiltinAttributes.h"#include "clang/AST/APValue.h"#include "clang/AST/ASTContext.h"#include "clang/AST/Attr.h"#include "clang/AST/CharUnits.h"#include "clang/AST/OperationKinds.h"#include "clang/AST/RecordLayout.h"#include "clang/AST/StmtVisitor.h"#include "clang/Basic/Builtins.h"#include "clang/CIR/Dialect/IR/CIRAttrs.h"#include "clang/CIR/Dialect/IR/CIRTypes.h"#include "clang/CIR/MissingFeatures.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/STLExtras.h"#include "llvm/Support/ErrorHandling.h"#include <functional>#include <iterator>Go to the source code of this file.
Functions | |
| static mlir::TypedAttr | emitNullConstantForBase (CIRGenModule &cgm, mlir::Type baseType, const CXXRecordDecl *baseDecl) |
| Emit the null constant for a base subobject. | |
| static mlir::TypedAttr | emitNullConstant (CIRGenModule &cgm, const RecordDecl *rd, bool asCompleteObject) |
|
static |
Definition at line 1528 of file CIRGenExprConstant.cpp.
References clang::Type::castAsCXXRecordDecl(), clang::CIRGen::CIRGenModule::emitNullConstantAttr(), emitNullConstantForBase(), clang::CIRGen::CIRGenModule::errorNYI(), clang::RecordDecl::fields(), clang::Type::getAsRecordDecl(), clang::CIRGen::CIRGenModule::getASTContext(), clang::ASTContext::getASTRecordLayout(), clang::CIRGen::CIRGenRecordLayout::getBaseSubobjectCIRType(), clang::CIRGen::CIRGenRecordLayout::getCIRFieldNo(), clang::CIRGen::CIRGenTypes::getCIRGenRecordLayout(), clang::CIRGen::CIRGenRecordLayout::getCIRType(), clang::NamedDecl::getIdentifier(), clang::CIRGen::CIRGenRecordLayout::getNonVirtualBaseCIRFieldNo(), clang::ASTRecordLayout::getNonVirtualSize(), clang::TagDecl::getSourceRange(), clang::APValue::LValueBase::getType(), clang::ValueDecl::getType(), clang::CIRGen::CIRGenModule::getTypes(), clang::FieldDecl::isBitField(), clang::CIRGen::isEmptyFieldForLayout(), clang::CIRGen::isEmptyRecordForLayout(), clang::TagDecl::isUnion(), and clang::CharUnits::isZero().
Referenced by emitNullConstantForBase().
|
static |
Emit the null constant for a base subobject.
Definition at line 1605 of file CIRGenExprConstant.cpp.
References emitNullConstant(), clang::CIRGen::CIRGenModule::getBuilder(), clang::CIRGen::CIRGenTypes::getCIRGenRecordLayout(), clang::CIRGen::CIRGenModule::getTypes(), cir::CIRBaseBuilderTy::getZeroInitAttr(), and clang::CIRGen::CIRGenRecordLayout::isZeroInitializableAsBase().
Referenced by emitNullConstant().