Lines Matching refs:LineInfo

334 bool SourcePrinter::cacheSource(const DILineInfo &LineInfo) {  in cacheSource()  argument
336 if (LineInfo.Source) { in cacheSource()
337 Buffer = MemoryBuffer::getMemBuffer(*LineInfo.Source); in cacheSource()
339 auto BufferOrError = MemoryBuffer::getFile(LineInfo.FileName); in cacheSource()
341 if (MissingSources.insert(LineInfo.FileName).second) in cacheSource()
342 reportWarning("failed to find source " + LineInfo.FileName, in cacheSource()
351 std::vector<StringRef> &Lines = LineCache[LineInfo.FileName]; in cacheSource()
360 SourceCache[LineInfo.FileName] = std::move(Buffer); in cacheSource()
372 DILineInfo LineInfo = DILineInfo(); in printSourceLine() local
377 LineInfo = *ExpectedLineInfo; in printSourceLine()
387 sys::path::is_absolute_gnu(LineInfo.FileName)) { in printSourceLine()
390 assert(!LineInfo.FileName.empty()); in printSourceLine()
393 auto StrippedNameStart = LineInfo.FileName.begin(); in printSourceLine()
397 for (auto Pos = StrippedNameStart + 1, End = LineInfo.FileName.end(); in printSourceLine()
405 LineInfo.FileName = in printSourceLine()
406 std::string(StrippedNameStart, LineInfo.FileName.end()); in printSourceLine()
410 sys::path::append(FilePath, Prefix, LineInfo.FileName); in printSourceLine()
412 LineInfo.FileName = std::string(FilePath); in printSourceLine()
416 printLines(OS, LineInfo, Delimiter, LVP); in printSourceLine()
418 printSources(OS, LineInfo, ObjectFilename, Delimiter, LVP); in printSourceLine()
419 OldLineInfo = LineInfo; in printSourceLine()
423 const DILineInfo &LineInfo, StringRef Delimiter, in printLines() argument
425 bool PrintFunctionName = LineInfo.FunctionName != DILineInfo::BadString && in printLines()
426 LineInfo.FunctionName != OldLineInfo.FunctionName; in printLines()
428 OS << Delimiter << LineInfo.FunctionName; in printLines()
431 if (!StringRef(LineInfo.FunctionName).endswith("()")) in printLines()
435 if (LineInfo.FileName != DILineInfo::BadString && LineInfo.Line != 0 && in printLines()
436 (OldLineInfo.Line != LineInfo.Line || in printLines()
437 OldLineInfo.FileName != LineInfo.FileName || PrintFunctionName)) { in printLines()
438 OS << Delimiter << LineInfo.FileName << ":" << LineInfo.Line; in printLines()
444 const DILineInfo &LineInfo, in printSources() argument
447 if (LineInfo.FileName == DILineInfo::BadString || LineInfo.Line == 0 || in printSources()
448 (OldLineInfo.Line == LineInfo.Line && in printSources()
449 OldLineInfo.FileName == LineInfo.FileName)) in printSources()
452 if (SourceCache.find(LineInfo.FileName) == SourceCache.end()) in printSources()
453 if (!cacheSource(LineInfo)) in printSources()
455 auto LineBuffer = LineCache.find(LineInfo.FileName); in printSources()
457 if (LineInfo.Line > LineBuffer->second.size()) { in printSources()
461 LineInfo.Line, LineInfo.FileName), in printSources()
466 OS << Delimiter << LineBuffer->second[LineInfo.Line - 1]; in printSources()