forked from OSchip/llvm-project
[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:
parent
cc0216bedb
commit
c75aac42a6
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue