mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-22 23:24:59 +00:00
Verifier: Sink filename check into visitMDCompositeType(), NFC
We really only want to check this for unions and classes (all the other tags have been ruled out), so simplify the check and move it to the right place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243150 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -786,25 +786,6 @@ void Verifier::visitDIDerivedTypeBase(const DIDerivedTypeBase &N) {
|
||||
Assert(isScopeRef(N, N.getScope()), "invalid scope", &N, N.getScope());
|
||||
Assert(isTypeRef(N, N.getBaseType()), "invalid base type", &N,
|
||||
N.getBaseType());
|
||||
|
||||
// FIXME: Sink this into the subclass verifies.
|
||||
if (!N.getFile() || N.getFile()->getFilename().empty()) {
|
||||
// Check whether the filename is allowed to be empty.
|
||||
uint16_t Tag = N.getTag();
|
||||
Assert(
|
||||
Tag == dwarf::DW_TAG_const_type || Tag == dwarf::DW_TAG_volatile_type ||
|
||||
Tag == dwarf::DW_TAG_pointer_type ||
|
||||
Tag == dwarf::DW_TAG_ptr_to_member_type ||
|
||||
Tag == dwarf::DW_TAG_reference_type ||
|
||||
Tag == dwarf::DW_TAG_rvalue_reference_type ||
|
||||
Tag == dwarf::DW_TAG_restrict_type ||
|
||||
Tag == dwarf::DW_TAG_array_type ||
|
||||
Tag == dwarf::DW_TAG_enumeration_type ||
|
||||
Tag == dwarf::DW_TAG_inheritance || Tag == dwarf::DW_TAG_friend ||
|
||||
Tag == dwarf::DW_TAG_structure_type ||
|
||||
Tag == dwarf::DW_TAG_member || Tag == dwarf::DW_TAG_typedef,
|
||||
"derived/composite type requires a filename", &N, N.getFile());
|
||||
}
|
||||
}
|
||||
|
||||
void Verifier::visitDIDerivedType(const DIDerivedType &N) {
|
||||
@@ -864,6 +845,12 @@ void Verifier::visitDICompositeType(const DICompositeType &N) {
|
||||
&N);
|
||||
if (auto *Params = N.getRawTemplateParams())
|
||||
visitTemplateParams(N, *Params);
|
||||
|
||||
if (N.getTag() == dwarf::DW_TAG_class_type ||
|
||||
N.getTag() == dwarf::DW_TAG_union_type) {
|
||||
Assert(N.getFile() && !N.getFile()->getFilename().empty(),
|
||||
"class/union requires a filename", &N, N.getFile());
|
||||
}
|
||||
}
|
||||
|
||||
void Verifier::visitDISubroutineType(const DISubroutineType &N) {
|
||||
|
Reference in New Issue
Block a user