5 #ifndef CLEARBLUE_SUMMARYMAPPER_H
6 #define CLEARBLUE_SUMMARYMAPPER_H
11 #include <llvm/Support/Debug.h>
13 #include "Checker/PSA/SymbolicSummary.h"
14 #include "Checker/PSA/TraceSummary.h"
47 std::map<std::pair<Instruction *, bool>,
48 std::vector<std::set<TransferSummary *>>>
51 std::map<std::pair<Instruction *, bool>,
52 std::vector<std::set<SourceSummary *>>>
55 std::map<std::pair<Instruction *, bool>,
56 std::vector<std::set<InputSummary *>>>
59 std::map<std::pair<Instruction *, bool>,
60 std::vector<std::set<OutputSummary *>>>
69 void index(Instruction *CallSite, std::set<TraceSummary *> &ParamSummarySet);
72 const std::set<InputSummary *> *queryInputSummary(Instruction *,
bool,
74 const std::set<TransferSummary *> *queryTransferSummary(Instruction *,
bool,
76 const std::set<SourceSummary *> *querySourceSummary(Instruction *,
bool,
78 const std::set<OutputSummary *> *queryOutputSummary(Instruction *,
bool,
81 bool hasInputSummary(Instruction *,
bool,
size_t)
const;
82 bool hasTransferSummary(Instruction *,
bool,
size_t)
const;
83 bool hasSourceSummary(Instruction *,
bool,
size_t)
const;
84 bool hasOutputSummary(Instruction *,
bool,
size_t)
const;
86 std::map<std::pair<Instruction *, bool>,
87 std::vector<std::set<SourceSummary *>>>::iterator
88 source_summary_begin() {
89 return SourceSmryMap.begin();
92 std::map<std::pair<Instruction *, bool>,
93 std::vector<std::set<SourceSummary *>>>::iterator
94 source_summary_end() {
95 return SourceSmryMap.end();
99 #endif // CLEARBLUE_SUMMARYMAPPER_H