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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316678 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Keno committed Oct 26, 2017
1 parent ae8900a commit ea6f05e
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion 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 ea6f05e

Please sign in to comment.