Skip to content

Commit

Permalink
[dsymutil] Check AttrInfo.Name validity before using it
Browse files Browse the repository at this point in the history
Summary:
This upstreams a patch from the osxcross [1] toolchain.
It appears that llvm-dsymutil crashes at this place during GCC
bootstrap. Adding the check here seems reasonable, since it operates
on arbitrary input DWARF, not necessarily generated by the LLVM
toolchain, and it seems the un-mangled name need not necessarily exist.

Patch by Thomas Pöchtrager

[1] https://github.com/tpoechtrager/osxcross

Reviewed By: aprantl
Differential Revision: https://reviews.llvm.org/D39336

llvm-svn: 316678
  • Loading branch information
Keno committed Oct 26, 2017
1 parent cc087f6 commit 722693b
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion llvm/tools/dsymutil/DwarfLinker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2878,7 +2878,8 @@ DIE *DwarfLinker::DIECloner::cloneDIE(
Tag == dwarf::DW_TAG_inlined_subroutine);
} else if (isTypeTag(Tag) && !AttrInfo.IsDeclaration &&
getDIENames(InputDIE, AttrInfo)) {
Unit.addTypeAccelerator(Die, AttrInfo.Name, AttrInfo.NameOffset);
if (AttrInfo.Name)
Unit.addTypeAccelerator(Die, AttrInfo.Name, AttrInfo.NameOffset);
}

// Determine whether there are any children that we want to keep.
Expand Down

0 comments on commit 722693b

Please sign in to comment.