Lines Matching defs:SP

430 void DwarfUnit::addSourceLine(DIE &Die, const DISubprogram *SP) {
431 assert(SP);
433 addSourceLine(Die, SP->getLine(), SP->getFile());
553 if (auto *SP = dyn_cast<DISubprogram>(Context))
554 return getOrCreateSubprogramDIE(SP);
950 if (auto *SP = dyn_cast<DISubprogram>(Element))
951 getOrCreateSubprogramDIE(SP);
1187 DIE *DwarfUnit::getOrCreateSubprogramDIE(const DISubprogram *SP, bool Minimal) {
1192 Minimal ? &getUnitDie() : getOrCreateContextDIE(SP->getScope());
1194 if (DIE *SPDie = getDIE(SP))
1197 if (auto *SPDecl = SP->getDeclaration()) {
1207 DIE &SPDie = createAndAddDIE(dwarf::DW_TAG_subprogram, *ContextDIE, SP);
1211 if (SP->isDefinition())
1215 ->applySubprogramAttributes(SP, SPDie);
1219 bool DwarfUnit::applySubprogramDefinitionAttributes(const DISubprogram *SP,
1223 if (auto *SPDecl = SP->getDeclaration()) {
1227 DefinitionArgs = SP->getType()->getTypeArray();
1241 unsigned DefID = getOrCreateSourceID(SP->getFile());
1245 if (SP->getLine() != SPDecl->getLine())
1246 addUInt(SPDie, dwarf::DW_AT_decl_line, std::nullopt, SP->getLine());
1251 addTemplateParams(SPDie, SP->getTemplateParams());
1254 StringRef LinkageName = SP->getLinkageName();
1260 (DD->useAllLinkageNames() || DU->getAbstractScopeDIEs().lookup(SP)))
1272 void DwarfUnit::applySubprogramAttributes(const DISubprogram *SP, DIE &SPDie,
1279 if (applySubprogramDefinitionAttributes(SP, SPDie, SkipSPAttributes))
1283 if (!SP->getName().empty())
1284 addString(SPDie, dwarf::DW_AT_name, SP->getName());
1286 addAnnotation(SPDie, SP->getAnnotations());
1289 addSourceLine(SPDie, SP);
1297 if (SP->isPrototyped() && dwarf::isC((dwarf::SourceLanguage)getLanguage()))
1300 if (SP->isObjCDirect())
1305 if (const DISubroutineType *SPTy = SP->getType()) {
1320 unsigned VK = SP->getVirtuality();
1323 if (SP->getVirtualIndex() != -1u) {
1326 addUInt(*Block, dwarf::DW_FORM_udata, SP->getVirtualIndex());
1329 ContainingTypeMap.insert(std::make_pair(&SPDie, SP->getContainingType()));
1332 if (!SP->isDefinition()) {
1340 addThrownTypes(SPDie, SP->getThrownTypes());
1342 if (SP->isArtificial())
1345 if (!SP->isLocalToUnit())
1349 if (SP->isOptimized())
1356 if (SP->isLValueReference())
1359 if (SP->isRValueReference())
1362 if (SP->isNoReturn())
1365 addAccess(SPDie, SP->getFlags());
1367 if (SP->isExplicit())
1370 if (SP->isMainSubprogram())
1372 if (SP->isPure())
1374 if (SP->isElemental())
1376 if (SP->isRecursive())
1379 if (!SP->getTargetFuncName().empty())
1380 addString(SPDie, dwarf::DW_AT_trampoline, SP->getTargetFuncName());
1382 if (DD->getDwarfVersion() >= 5 && SP->isDeleted())