forked from OSchip/llvm-project
Handle empty Subprogram list when linking metadata.
Use an iterator that handles an empty subprogram list. Fixes PR25915. llvm-svn: 256224
This commit is contained in:
parent
c3281bd05c
commit
d213aa469e
|
@ -1193,7 +1193,7 @@ void IRLinker::findNeededSubprograms(ValueToValueMapTy &ValueMap) {
|
|||
for (unsigned I = 0, E = CompileUnits->getNumOperands(); I != E; ++I) {
|
||||
auto *CU = cast<DICompileUnit>(CompileUnits->getOperand(I));
|
||||
assert(CU && "Expected valid compile unit");
|
||||
for (const Metadata *Op : CU->getSubprograms()->operands()) {
|
||||
for (auto *Op : CU->getSubprograms()) {
|
||||
// Unless we were doing function importing and deferred metadata linking,
|
||||
// any needed SPs should have been mapped as they would be reached
|
||||
// from the function linked in (either on the function itself for linked
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
; RUN: llvm-as %s -o %t.o
|
||||
; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
|
||||
; RUN: -plugin-opt=emit-llvm \
|
||||
; RUN: -shared %t.o -o %t2
|
||||
; RUN: llvm-dis %t2 -o - | FileCheck %s
|
||||
; CHECK-NOT: subprograms
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!3, !4}
|
||||
!llvm.ident = !{!5}
|
||||
|
||||
!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 256170) (llvm/trunk 256171)", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !2)
|
||||
!1 = !DIFile(filename: "pr25915.cc", directory: ".")
|
||||
!2 = !{}
|
||||
!3 = !{i32 2, !"Dwarf Version", i32 4}
|
||||
!4 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!5 = !{!"clang version 3.8.0 (trunk 256170) (llvm/trunk 256171)"}
|
Loading…
Reference in New Issue