Skip to content

Commit f0d61ea

Browse files
committed
Refactor DebugHandlerBase::getBaseTypeSize
This patch refactors DebugHandlerBase::getBaseTypeSize a little, making it less dependent on DIDerivedType. This is preparation for a subsequent patch that adds a new case here.
1 parent 2cf6663 commit f0d61ea

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -148,20 +148,19 @@ MCSymbol *DebugHandlerBase::getLabelAfterInsn(const MachineInstr *MI) {
148148
/// If this type is derived from a base type then return base type size.
149149
uint64_t DebugHandlerBase::getBaseTypeSize(const DIType *Ty) {
150150
assert(Ty);
151-
const DIDerivedType *DDTy = dyn_cast<DIDerivedType>(Ty);
152-
if (!DDTy)
153-
return Ty->getSizeInBits();
154151

155-
unsigned Tag = DDTy->getTag();
152+
unsigned Tag = Ty->getTag();
156153

157154
if (Tag != dwarf::DW_TAG_member && Tag != dwarf::DW_TAG_typedef &&
158155
Tag != dwarf::DW_TAG_const_type && Tag != dwarf::DW_TAG_volatile_type &&
159156
Tag != dwarf::DW_TAG_restrict_type && Tag != dwarf::DW_TAG_atomic_type &&
160157
Tag != dwarf::DW_TAG_immutable_type &&
161158
Tag != dwarf::DW_TAG_template_alias)
162-
return DDTy->getSizeInBits();
159+
return Ty->getSizeInBits();
163160

164-
DIType *BaseType = DDTy->getBaseType();
161+
DIType *BaseType = nullptr;
162+
if (const DIDerivedType *DDTy = dyn_cast<DIDerivedType>(Ty))
163+
BaseType = DDTy->getBaseType();
165164

166165
if (!BaseType)
167166
return 0;

0 commit comments

Comments
 (0)