Lines Matching refs:LineInfo
336 bool SourcePrinter::cacheSource(const DILineInfo &LineInfo) { in cacheSource() argument
338 if (LineInfo.Source) { in cacheSource()
339 Buffer = MemoryBuffer::getMemBuffer(*LineInfo.Source); in cacheSource()
341 auto BufferOrError = MemoryBuffer::getFile(LineInfo.FileName); in cacheSource()
343 if (MissingSources.insert(LineInfo.FileName).second) in cacheSource()
344 reportWarning("failed to find source " + LineInfo.FileName, in cacheSource()
353 std::vector<StringRef> &Lines = LineCache[LineInfo.FileName]; in cacheSource()
362 SourceCache[LineInfo.FileName] = std::move(Buffer); in cacheSource()
374 DILineInfo LineInfo = DILineInfo(); in printSourceLine() local
379 LineInfo = *ExpectedLineInfo; in printSourceLine()
389 sys::path::is_absolute_gnu(LineInfo.FileName)) { in printSourceLine()
392 assert(!LineInfo.FileName.empty()); in printSourceLine()
395 auto StrippedNameStart = LineInfo.FileName.begin(); in printSourceLine()
399 for (auto Pos = StrippedNameStart + 1, End = LineInfo.FileName.end(); in printSourceLine()
407 LineInfo.FileName = in printSourceLine()
408 std::string(StrippedNameStart, LineInfo.FileName.end()); in printSourceLine()
412 sys::path::append(FilePath, Prefix, LineInfo.FileName); in printSourceLine()
414 LineInfo.FileName = std::string(FilePath); in printSourceLine()
418 printLines(OS, LineInfo, Delimiter, LVP); in printSourceLine()
420 printSources(OS, LineInfo, ObjectFilename, Delimiter, LVP); in printSourceLine()
421 OldLineInfo = LineInfo; in printSourceLine()
425 const DILineInfo &LineInfo, StringRef Delimiter, in printLines() argument
427 bool PrintFunctionName = LineInfo.FunctionName != DILineInfo::BadString && in printLines()
428 LineInfo.FunctionName != OldLineInfo.FunctionName; in printLines()
430 OS << Delimiter << LineInfo.FunctionName; in printLines()
433 if (!StringRef(LineInfo.FunctionName).endswith("()")) in printLines()
437 if (LineInfo.FileName != DILineInfo::BadString && LineInfo.Line != 0 && in printLines()
438 (OldLineInfo.Line != LineInfo.Line || in printLines()
439 OldLineInfo.FileName != LineInfo.FileName || PrintFunctionName)) { in printLines()
440 OS << Delimiter << LineInfo.FileName << ":" << LineInfo.Line; in printLines()
446 const DILineInfo &LineInfo, in printSources() argument
449 if (LineInfo.FileName == DILineInfo::BadString || LineInfo.Line == 0 || in printSources()
450 (OldLineInfo.Line == LineInfo.Line && in printSources()
451 OldLineInfo.FileName == LineInfo.FileName)) in printSources()
454 if (SourceCache.find(LineInfo.FileName) == SourceCache.end()) in printSources()
455 if (!cacheSource(LineInfo)) in printSources()
457 auto LineBuffer = LineCache.find(LineInfo.FileName); in printSources()
459 if (LineInfo.Line > LineBuffer->second.size()) { in printSources()
463 LineInfo.Line, LineInfo.FileName), in printSources()
468 OS << Delimiter << LineBuffer->second[LineInfo.Line - 1]; in printSources()