Lines Matching refs:LineInfo

342 bool SourcePrinter::cacheSource(const DILineInfo &LineInfo) {  in cacheSource()  argument
344 if (LineInfo.Source) { in cacheSource()
345 Buffer = MemoryBuffer::getMemBuffer(*LineInfo.Source); in cacheSource()
347 auto BufferOrError = MemoryBuffer::getFile(LineInfo.FileName); in cacheSource()
349 if (MissingSources.insert(LineInfo.FileName).second) in cacheSource()
350 reportWarning("failed to find source " + LineInfo.FileName, in cacheSource()
359 std::vector<StringRef> &Lines = LineCache[LineInfo.FileName]; in cacheSource()
368 SourceCache[LineInfo.FileName] = std::move(Buffer); in cacheSource()
380 DILineInfo LineInfo = DILineInfo(); in printSourceLine() local
385 LineInfo = *ExpectedLineInfo; in printSourceLine()
395 sys::path::is_absolute_gnu(LineInfo.FileName)) { in printSourceLine()
398 assert(!LineInfo.FileName.empty()); in printSourceLine()
401 auto StrippedNameStart = LineInfo.FileName.begin(); in printSourceLine()
405 for (auto Pos = StrippedNameStart + 1, End = LineInfo.FileName.end(); in printSourceLine()
413 LineInfo.FileName = in printSourceLine()
414 std::string(StrippedNameStart, LineInfo.FileName.end()); in printSourceLine()
418 sys::path::append(FilePath, Prefix, LineInfo.FileName); in printSourceLine()
420 LineInfo.FileName = std::string(FilePath); in printSourceLine()
424 printLines(OS, LineInfo, Delimiter, LVP); in printSourceLine()
426 printSources(OS, LineInfo, ObjectFilename, Delimiter, LVP); in printSourceLine()
427 OldLineInfo = LineInfo; in printSourceLine()
431 const DILineInfo &LineInfo, StringRef Delimiter, in printLines() argument
433 bool PrintFunctionName = LineInfo.FunctionName != DILineInfo::BadString && in printLines()
434 LineInfo.FunctionName != OldLineInfo.FunctionName; in printLines()
436 OS << Delimiter << LineInfo.FunctionName; in printLines()
439 if (!StringRef(LineInfo.FunctionName).ends_with("()")) in printLines()
443 if (LineInfo.FileName != DILineInfo::BadString && LineInfo.Line != 0 && in printLines()
444 (OldLineInfo.Line != LineInfo.Line || in printLines()
445 OldLineInfo.FileName != LineInfo.FileName || PrintFunctionName)) { in printLines()
446 OS << Delimiter << LineInfo.FileName << ":" << LineInfo.Line; in printLines()
454 StringRef SourcePrinter::getLine(const DILineInfo &LineInfo, in getLine() argument
456 if (LineInfo.LineSource) in getLine()
457 return LineInfo.LineSource.value(); in getLine()
459 if (SourceCache.find(LineInfo.FileName) == SourceCache.end()) in getLine()
460 if (!cacheSource(LineInfo)) in getLine()
463 auto LineBuffer = LineCache.find(LineInfo.FileName); in getLine()
467 if (LineInfo.Line > LineBuffer->second.size()) { in getLine()
470 LineInfo.Line, LineInfo.FileName), in getLine()
476 return LineBuffer->second[LineInfo.Line - 1]; in getLine()
480 const DILineInfo &LineInfo, in printSources() argument
483 if (LineInfo.FileName == DILineInfo::BadString || LineInfo.Line == 0 || in printSources()
484 (OldLineInfo.Line == LineInfo.Line && in printSources()
485 OldLineInfo.FileName == LineInfo.FileName)) in printSources()
488 StringRef Line = getLine(LineInfo, ObjectFilename); in printSources()