[llvm-branch-commits] [llvm] 23a40f7 - [Verifier] Allow DW_TAG_class_type/DW_TAG_union_type to have no filename
Tom Stellard via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Feb 15 17:30:15 PST 2021
Author: Fangrui Song
Date: 2021-02-15T17:29:44-08:00
New Revision: 23a40f7a595d5f07cb08d1d28987d7b4ca3ed766
URL: https://github.com/llvm/llvm-project/commit/23a40f7a595d5f07cb08d1d28987d7b4ca3ed766
DIFF: https://github.com/llvm/llvm-project/commit/23a40f7a595d5f07cb08d1d28987d7b4ca3ed766.diff
LOG: [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
(cherry picked from commit ad60802a7187aa39b0374536be3fa176fe3d6256)
Added:
Modified:
llvm/lib/IR/Verifier.cpp
Removed:
################################################################################
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 100e881c8fa8..6dd299ee9845 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<DIDerivedType>(D) && N.getTag() == dwarf::DW_TAG_variant_part,
"discriminator can only appear on variant part");
More information about the llvm-branch-commits
mailing list