Lines Matching full:scope
32 // Update a recorded entry with its logical scope and section index.
33 SymbolNames[SymbolName].Scope = Function;
52 // Update a recorded symbol name with its logical scope.
55 LVScope *Function = SymbolNames[SymbolName].Scope;
71 // Update a recorded entry with its logical scope, only if the scope has
75 SymbolNames[SymbolName].Scope = Function;
111 LVScope *Scope = SymbolName.Scope;
112 LVOffset Offset = Scope ? Scope->getOffset() : 0;
115 << " Scope: " << hexValue(Offset)
339 LVBinaryReader::getSection(LVScope *Scope, LVAddress Address,
341 // Return the 'text' section with the code for this logical scope.
349 Scope->getName().str().c_str());
361 Scope->getName().str().c_str());
371 LVScope *Scope) {
373 ScopesWithRanges->addEntry(Scope);
377 LVScope *Scope, LVAddress LowerAddress,
380 ScopesWithRanges->addEntry(Scope, LowerAddress, UpperAddress);
394 Error LVBinaryReader::createInstructions(LVScope *Scope,
397 assert(Scope && "Scope is null.");
400 if (Scope->getIsDiscarded())
408 dbgs() << "\nPublic Name instructions: '" << Scope->getName() << "' / '"
409 << Scope->getLinkageName() << "'\n"
410 << "DIE Offset: " << hexValue(Scope->getOffset()) << " Range: ["
415 getSection(Scope, Address, SectionIndex);
427 // logical scope is one less than the real size.
496 // to its enclosing logical scope, using the debug ranges information
497 // and they will be released when its scope parent is deleted.
512 << " Scope DIE: " << hexValue(Scope->getOffset()) << "\n"
522 // The scope in the assembler names is linked to its own instructions.
523 ScopeInstructions.add(SectionIndex, Scope, &Instructions);
524 AssemblerMappings.add(SectionIndex, FirstAddress, Scope);
547 dbgs() << "\nPublic Names (Scope):\n";
549 LVScope *Scope = Name.first;
554 << "DIE Offset: " << hexValue(Scope->getOffset()) << " Range: ["
556 << "Name: '" << Scope->getName() << "' / '"
557 << Scope->getLinkageName() << "'\n";
564 LVScope *Scope = Name.first;
566 // non-empty name (linkage name). However, the logical scope does not
569 if (!Scope->getLinkageNameIndex())
570 Scope->setLinkageName(Scope->getName());
571 LVSectionIndex SectionIndex = getSymbolTableIndex(Scope->getLinkageName());
572 if (Error Err = createInstructions(Scope, SectionIndex, Name.second))
620 LVScope *Scope = Function;
622 Scope = AssemblerMappings.find(SectionIndex, DebugAddress);
623 if (!Scope) {
629 // Get the associated instructions for the found 'Scope'.
631 LVLines *Lines = ScopeInstructions.find(SectionIndex, Scope);
638 << " Scope DIE: " << hexValue(Scope->getOffset()) << "\n"
713 // to move them to their associated scope.
716 for (LVScope *Scope : *Scopes) {
717 LVLines *Lines = ScopeInstructions.find(Scope);
723 << " Scope DIE: " << hexValue(Scope->getOffset()) << "\n"
731 if (Scope->getIsArtificial()) {
732 // Add the instruction lines to their artificial scope.
734 Scope->addElement(Line);
747 LVScope *Scope;
749 // Using the current line address, get its associated lexical scope and
751 Scope = ScopesWithRanges->getEntry(Line->getAddress());
752 if (!Scope) {
753 // If missing scope, use the compile unit.
754 Scope = CompileUnit;
764 // Add line object to scope.
765 Scope->addElement(Line);
775 // If we use the ranges stored at the scope level, there are cases where
777 // scope, but in an outer one. By using the ranges stored in the compile
899 for (LVScope *Scope : *Scopes) {
900 LVInlineeLine::iterator Iter = CUInlineeLines.find(Scope);
903 FindInlinedScopes(Scope);
910 LVScope *Scope = InlineeIter->first;
911 addToSymbolTable(Scope->getLinkageName(), Scope, SectionIndex);
916 dbgs() << "Inlined lines for: " << Scope->getName() << "\n";
940 Scope->setCallLineNumber((*Iter)->getLineNumber());