| 171 | } |
| 172 | |
| 173 | DefAnalyzer::ArgDef DefAnalyzer::analyzeTargetCallArg(llvm::CallBase &CB, |
| 174 | unsigned ArgIdx) { |
| 175 | auto FoundRootDefs = |
| 176 | Analyzer->getRootDefinitions(CB.getArgOperandUse(ArgIdx)); |
| 177 | std::vector<RDNode> RootDefs(FoundRootDefs.begin(), FoundRootDefs.end()); |
| 178 | RootDefs.erase(std::remove_if(RootDefs.begin(), RootDefs.end(), |
| 179 | [this](const auto &Node) { |
| 180 | return this->isInvalidRDNode(*ASTMap, Node); |
| 181 | }), |
| 182 | RootDefs.end()); |
| 183 | |
| 184 | std::set<RDNode> Nodes(RootDefs.begin(), RootDefs.end()); |
| 185 | DefAnalyzer::ArgDef Result = {.Defs = Nodes}; |
| 186 | return Result; |
| 187 | } |
| 188 | |
| 189 | std::set<RDNode> DefAnalyzer::collectRDNodes( |
| 190 | const std::map<Unittest *, std::vector<FuncDef>> &UTDefMap) const { |
nothing calls this directly
no test coverage detected