| 313 | } |
| 314 | |
| 315 | std::pair<unsigned, std::string> |
| 316 | DefMapGenerator::getDeclTypeInfo(const VarDecl &D, |
| 317 | const SourceManager &SrcManager) const { |
| 318 | auto MacroCallerLoc = SrcManager.getTopMacroCallerLoc(D.getBeginLoc()); |
| 319 | auto *Base = getFirstVarDeclhasSameBeginLoc(D); |
| 320 | assert(Base && "Unexpected Program State"); |
| 321 | |
| 322 | auto Offset = SrcManager.getFileOffset(MacroCallerLoc); |
| 323 | int Length = SrcManager.getFileOffset( |
| 324 | SrcManager.getTopMacroCallerLoc(Base->getLocation())) - |
| 325 | (int)Offset; |
| 326 | if (Length <= 0) |
| 327 | return std::make_pair(0, ""); |
| 328 | |
| 329 | auto Content = |
| 330 | util::getFileContent(SrcManager.getFileID(MacroCallerLoc), SrcManager); |
| 331 | if (Content.size() < Offset + Length) |
| 332 | return std::make_pair(0, ""); |
| 333 | |
| 334 | return std::make_pair(Offset, Content.substr(Offset, Length).str()); |
| 335 | } |
| 336 | |
| 337 | unsigned DefMapGenerator::getEndOffset(const VarDecl &D, |
| 338 | const SourceManager &SrcManager) const { |
nothing calls this directly
no test coverage detected