[DWARF] Don't assume optional always has a value.

When getting the file name form the line table prologue we assume that a
valid string form value can always be extracted as a string. If you look
at the implementation of DWARFormValue this is not necessarily true. I
hit this assertion from LLDB when I create a "dummy" DWARFContext that
was missing the string section.
This commit is contained in:
Jonas Devlieghere 2020-01-03 09:30:20 -08:00
parent cc0216bedb
commit c75aac42a6
1 changed files with 4 additions and 1 deletions

View File

@ -1026,7 +1026,10 @@ bool DWARFDebugLine::Prologue::getFileNameByIndex(
if (Kind == FileLineInfoKind::None || !hasFileAtIndex(FileIndex))
return false;
const FileNameEntry &Entry = getFileNameEntry(FileIndex);
StringRef FileName = Entry.Name.getAsCString().getValue();
Optional<const char *> Name = Entry.Name.getAsCString();
if (!Name)
return false;
StringRef FileName = *Name;
if (Kind != FileLineInfoKind::AbsoluteFilePath ||
isPathAbsoluteOnWindowsOrPosix(FileName)) {
Result = FileName;