From ad60802a7187aa39b0374536be3fa176fe3d6256 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Mon, 8 Feb 2021 13:31:05 -0800 Subject: [PATCH] [Verifier] Allow DW_TAG_class_type/DW_TAG_union_type to have no filename `clang/lib/CodeGen/CGOpenMPRuntime.cpp` synthesized union (`distinct !DICompositeType(tag: DW_TAG_union_type, name: "kmp_cmplrdata_t", size: 64, elements: <0x62b690>)`) does not have meaningful filename/line number. D94735 dropped the previously arbitrary and untested filename/line from the union and caused a verifier error here. This fixes `check-libarcher` failures. Differential Revision: https://reviews.llvm.org/D96212 --- llvm/lib/IR/Verifier.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 100e881c8fa81..6dd299ee98450 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -1070,12 +1070,6 @@ void Verifier::visitDICompositeType(const DICompositeType &N) { if (auto *Params = N.getRawTemplateParams()) visitTemplateParams(N, *Params); - if (N.getTag() == dwarf::DW_TAG_class_type || - N.getTag() == dwarf::DW_TAG_union_type) { - AssertDI(N.getFile() && !N.getFile()->getFilename().empty(), - "class/union requires a filename", &N, N.getFile()); - } - if (auto *D = N.getRawDiscriminator()) { AssertDI(isa(D) && N.getTag() == dwarf::DW_TAG_variant_part, "discriminator can only appear on variant part");