Skip to content

Commit ff48eb8

Browse files
authored
Merge pull request #461 from secure-software-engineering/f-ClangTidyFixMono
clang-tidy: Fix Mono
2 parents 30b412a + 91f2e09 commit ff48eb8

15 files changed

Lines changed: 195 additions & 189 deletions

include/phasar/PhasarLLVM/DataFlowSolver/Mono/CallString.h

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,48 +28,49 @@ namespace psr {
2828

2929
template <typename T, unsigned K> class CallString {
3030
private:
31-
std::deque<T> cs;
32-
static const unsigned k = K;
31+
std::deque<T> CS;
32+
static const unsigned KLimit = K;
3333

3434
public:
3535
CallString() = default;
36-
CallString(std::initializer_list<T> ilist) : cs(ilist) {
37-
if (ilist.size() > k) {
36+
CallString(std::initializer_list<T> IList) : CS(IList) {
37+
if (IList.size() > KLimit) {
3838
throw std::runtime_error(
3939
"initial call string length exceeds maximal length K");
4040
}
4141
}
42-
void push(T s) {
43-
if (cs.size() > k - 1) {
44-
cs.pop_front();
42+
void push(T S) {
43+
if (CS.size() > KLimit - 1) {
44+
CS.pop_front();
4545
}
46-
cs.push_back(s);
46+
CS.push_back(S);
4747
}
4848
T returnSite() {
49-
if (cs.size() > 0)
50-
return cs.back();
51-
return nullptr;
49+
if (!CS.empty()) {
50+
return CS.back();
51+
}
52+
return {};
5253
}
5354
void pop() {
54-
if (cs.size() > 0) {
55-
cs.pop_back();
55+
if (!CS.empty()) {
56+
CS.pop_back();
5657
}
5758
}
58-
size_t size() { return cs.size(); }
59-
std::deque<T> getInternalCS() const { return cs; }
60-
friend bool operator==(const CallString &lhs, const CallString &rhs) {
61-
return lhs.cs == rhs.cs;
59+
size_t size() { return CS.size(); }
60+
std::deque<T> getInternalCS() const { return CS; }
61+
friend bool operator==(const CallString &Lhs, const CallString &Rhs) {
62+
return Lhs.cs == Rhs.cs;
6263
}
63-
friend bool operator!=(const CallString &lhs, const CallString &rhs) {
64-
return !(lhs == rhs);
64+
friend bool operator!=(const CallString &Lhs, const CallString &Rhs) {
65+
return !(Lhs == Rhs);
6566
}
66-
friend bool operator<(const CallString &lhs, const CallString &rhs) {
67-
return lhs.cs < rhs.cs;
67+
friend bool operator<(const CallString &Lhs, const CallString &Rhs) {
68+
return Lhs.cs < Rhs.cs;
6869
}
69-
friend std::ostream &operator<<(std::ostream &os, const CallString &c) {
70-
std::copy(c.cs.begin(), --c.cs.end(), std::ostream_iterator<T>(os, " * "));
71-
os << c.cs.back();
72-
return os;
70+
friend std::ostream &operator<<(std::ostream &OS, const CallString &C) {
71+
std::copy(C.CS.begin(), --C.CS.end(), std::ostream_iterator<T>(OS, " * "));
72+
OS << C.CS.back();
73+
return OS;
7374
}
7475
};
7576

include/phasar/PhasarLLVM/DataFlowSolver/Mono/Contexts/CallStringCTX.h

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,39 +12,43 @@ namespace psr {
1212

1313
template <typename N, unsigned K> class CallStringCTX {
1414
protected:
15-
std::deque<N> cs;
16-
static const unsigned k = K;
15+
std::deque<N> CallString;
16+
static const unsigned KLimit = K;
1717
friend struct std::hash<psr::CallStringCTX<N, K>>;
1818

1919
public:
20-
CallStringCTX() {}
20+
CallStringCTX() = default;
2121

22-
CallStringCTX(std::initializer_list<N> ilist) : cs(ilist) {
23-
if (ilist.size() > k) {
22+
CallStringCTX(std::initializer_list<N> IList) : CallString(IList) {
23+
if (IList.size() > KLimit) {
2424
throw std::runtime_error(
2525
"initial call std::string length exceeds maximal length K");
2626
}
2727
}
2828

29-
void push_back(N n) {
30-
if (cs.size() > k - 1) {
31-
cs.pop_front();
29+
void push_back(N Stmt) { // NOLINT
30+
if (CallString.size() > KLimit - 1) {
31+
CallString.pop_front();
3232
}
33-
cs.push_back(n);
33+
CallString.push_back(Stmt);
3434
}
3535

36-
N pop_back() {
37-
if (cs.size() > 0) {
38-
N n = cs.back();
39-
cs.pop_back();
40-
return n;
36+
N pop_back() { // NOLINT
37+
if (!CallString.empty()) {
38+
N Stmt = CallString.back();
39+
CallString.pop_back();
40+
return Stmt;
4141
}
4242
return N{};
4343
}
4444

45-
bool isEqual(const CallStringCTX &rhs) const { return cs == rhs.cs; }
45+
[[nodiscard]] bool isEqual(const CallStringCTX &Rhs) const {
46+
return CallString == Rhs.CallString;
47+
}
4648

47-
bool isDifferent(const CallStringCTX &rhs) const { return !isEqual(rhs); }
49+
[[nodiscard]] bool isDifferent(const CallStringCTX &Rhs) const {
50+
return !isEqual(Rhs);
51+
}
4852

4953
friend bool operator==(const CallStringCTX<N, K> &Lhs,
5054
const CallStringCTX<N, K> &Rhs) {
@@ -61,26 +65,26 @@ template <typename N, unsigned K> class CallStringCTX {
6165
return Lhs.cs < Rhs.cs;
6266
}
6367

64-
void print(std::ostream &os) const {
65-
os << "Call string: [ ";
66-
for (auto C : cs) {
67-
os << llvmIRToString(C);
68-
if (C != cs.back()) {
69-
os << " * ";
68+
void print(std::ostream &OS) const {
69+
OS << "Call string: [ ";
70+
for (auto C : CallString) {
71+
OS << llvmIRToString(C);
72+
if (C != CallString.back()) {
73+
OS << " * ";
7074
}
7175
}
72-
os << " ]";
76+
OS << " ]";
7377
}
7478

75-
friend std::ostream &operator<<(std::ostream &os,
76-
const CallStringCTX<N, K> &c) {
77-
c.print(os);
78-
return os;
79+
friend std::ostream &operator<<(std::ostream &OS,
80+
const CallStringCTX<N, K> &C) {
81+
C.print(OS);
82+
return OS;
7983
}
8084

81-
bool empty() const { return cs.empty(); }
85+
[[nodiscard]] bool empty() const { return CallString.empty(); }
8286

83-
std::size_t size() const { return cs.size(); }
87+
[[nodiscard]] std::size_t size() const { return CallString.size(); }
8488
};
8589

8690
} // namespace psr
@@ -89,11 +93,11 @@ namespace std {
8993

9094
template <typename N, unsigned K> struct hash<psr::CallStringCTX<N, K>> {
9195
size_t operator()(const psr::CallStringCTX<N, K> &CS) const noexcept {
92-
boost::hash<std::deque<N>> hash_deque;
93-
std::hash<unsigned> hash_unsigned;
94-
size_t u = hash_unsigned(K);
95-
size_t h = hash_deque(CS.cs);
96-
return u ^ (h << 1);
96+
boost::hash<std::deque<N>> HashDeque;
97+
std::hash<unsigned> HashUnsigned;
98+
size_t U = HashUnsigned(K);
99+
size_t H = HashDeque(CS.CallString);
100+
return U ^ (H << 1);
97101
}
98102
};
99103

include/phasar/PhasarLLVM/DataFlowSolver/Mono/InterMonoProblem.h

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,10 @@ class InterMonoProblem : public IntraMonoProblem<AnalysisDomainTy> {
5656
ICF(ICF) {}
5757

5858
~InterMonoProblem() override = default;
59-
60-
InterMonoProblem(const InterMonoProblem &copy) = delete;
61-
62-
InterMonoProblem(InterMonoProblem &&move) = delete;
63-
64-
InterMonoProblem &operator=(const InterMonoProblem &copy) = delete;
65-
66-
InterMonoProblem &operator=(InterMonoProblem &&move) = delete;
59+
InterMonoProblem(const InterMonoProblem &Other) = delete;
60+
InterMonoProblem(InterMonoProblem &&Other) = delete;
61+
InterMonoProblem &operator=(const InterMonoProblem &Other) = delete;
62+
InterMonoProblem &operator=(InterMonoProblem &&Other) = delete;
6763

6864
virtual mono_container_t callFlow(n_t CallSite, f_t Callee,
6965
const mono_container_t &In) = 0;

include/phasar/PhasarLLVM/DataFlowSolver/Mono/IntraMonoProblem.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ class IntraMonoProblem : public NodePrinter<AnalysisDomainTy>,
8080
virtual mono_container_t merge(const mono_container_t &Lhs,
8181
const mono_container_t &Rhs) = 0;
8282

83-
virtual bool equal_to(const mono_container_t &Lhs,
84-
const mono_container_t &Rhs) = 0;
83+
virtual bool equal_to( // NOLINT - this would break client analyses
84+
const mono_container_t &Lhs, const mono_container_t &Rhs) = 0;
8585

8686
virtual mono_container_t allTop() { return mono_container_t{}; }
8787

@@ -103,7 +103,7 @@ class IntraMonoProblem : public NodePrinter<AnalysisDomainTy>,
103103
return PT;
104104
}
105105

106-
virtual bool setSoundness(Soundness S) { return false; }
106+
virtual bool setSoundness(Soundness /*S*/) { return false; }
107107

108108
virtual void printContainer(std::ostream &OS, mono_container_t C) const {}
109109
};

include/phasar/PhasarLLVM/DataFlowSolver/Mono/Problems/IntraMonoFullConstantPropagation.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ class IntraMonoFullConstantPropagation
7272

7373
private:
7474
static LatticeDomain<plain_d_t>
75-
executeBinOperation(const unsigned Op, plain_d_t Lop, plain_d_t Rop);
75+
executeBinOperation(unsigned Op, plain_d_t Lop, plain_d_t Rop);
7676

7777
public:
7878
IntraMonoFullConstantPropagation(const ProjectIRDB *IRDB,
@@ -110,16 +110,16 @@ struct hash<std::pair<
110110
psr::LatticeDomain<psr::IntraMonoFullConstantPropagation::plain_d_t>>> {
111111
size_t operator()(const std::pair<const llvm::Value *,
112112
psr::LatticeDomain<int64_t>> &P) const {
113-
std::hash<const llvm::Value *> hash_ptr;
114-
size_t hp = hash_ptr(P.first);
115-
size_t hu = 0;
113+
std::hash<const llvm::Value *> HashPtr;
114+
size_t HP = HashPtr(P.first);
115+
size_t HU = 0;
116116
// returns nullptr if P.second is Top or Bottom, a valid pointer otherwise
117-
if (auto Ptr =
117+
if (const auto *Ptr =
118118
std::get_if<psr::IntraMonoFullConstantPropagation::plain_d_t>(
119119
&P.second)) {
120-
hu = *Ptr;
120+
HU = *Ptr;
121121
}
122-
return hp ^ (hu << 1);
122+
return HP ^ (HU << 1);
123123
}
124124
};
125125

include/phasar/PhasarLLVM/DataFlowSolver/Mono/Solver/InterMonoSolver.h

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ template <typename AnalysisDomainTy, unsigned K> class InterMonoSolver {
148148
}
149149
// add inter-procedural return edges again
150150
if (ICF->isExitInst(Dst)) {
151-
for (auto caller : ICF->getCallersOf(ICF->getFunctionOf(Dst))) {
152-
for (auto Nprimeprime : ICF->getSuccsOf(caller)) {
151+
for (const auto *Caller : ICF->getCallersOf(ICF->getFunctionOf(Dst))) {
152+
for (const auto *Nprimeprime : ICF->getSuccsOf(Caller)) {
153153
Worklist.push_back({Dst, Nprimeprime});
154154
}
155155
}
@@ -209,11 +209,11 @@ template <typename AnalysisDomainTy, unsigned K> class InterMonoSolver {
209209
IMProblem.equal_to(Out[Ctx], Analysis[Dst][Ctx]);
210210
if (!FlowFactStabilized) {
211211
std::cout << "\nNormal stabilized? --> " << FlowFactStabilized << '\n';
212-
auto merged = Out[Ctx];
212+
auto Merged = Out[Ctx];
213213
std::cout << "Normal merged:\n";
214-
IMProblem.printContainer(std::cout, merged);
214+
IMProblem.printContainer(std::cout, Merged);
215215
std::cout << '\n';
216-
Analysis[Dst][Ctx] = merged;
216+
Analysis[Dst][Ctx] = Merged;
217217
addToWorklist({Src, Dst});
218218
}
219219
}
@@ -243,11 +243,11 @@ template <typename AnalysisDomainTy, unsigned K> class InterMonoSolver {
243243
std::cout << "Call stabilized? --> " << FlowFactStabilized << '\n';
244244
if (!FlowFactStabilized) {
245245
// auto merge = IMProblem.merge(Analysis[Dst][CTXAdd], Out[CTXAdd]);
246-
auto merge = Out[CTXAdd];
246+
auto Merge = Out[CTXAdd];
247247
std::cout << "Call merge:\n";
248-
IMProblem.printContainer(std::cout, merge);
248+
IMProblem.printContainer(std::cout, Merge);
249249
std::cout << '\n';
250-
Analysis[Dst][CTXAdd] = merge;
250+
Analysis[Dst][CTXAdd] = Merge;
251251
addToWorklist({Src, Dst});
252252
}
253253
}
@@ -271,12 +271,12 @@ template <typename AnalysisDomainTy, unsigned K> class InterMonoSolver {
271271
IMProblem.printContainer(std::cout, Analysis[Dst][Ctx]);
272272
std::cout << '\n';
273273
if (!FlowFactStabilized) {
274-
auto merge = Out[Ctx];
274+
auto Merge = Out[Ctx];
275275
std::cout << "Call to ret merge:\n";
276-
IMProblem.printContainer(std::cout, merge);
276+
IMProblem.printContainer(std::cout, Merge);
277277
std::cout << '\n';
278278
Analysis[Dst][Ctx] =
279-
merge; // IMProblem.merge(Analysis[Dst][Ctx], Out[Ctx]);
279+
Merge; // IMProblem.merge(Analysis[Dst][Ctx], Out[Ctx]);
280280
addToWorklist({Src, Dst});
281281
}
282282
}
@@ -328,15 +328,15 @@ template <typename AnalysisDomainTy, unsigned K> class InterMonoSolver {
328328
IMProblem.equal_to(Out[CTXRm], Analysis[RetSite][CTXRm]);
329329
std::cout << "Ret stabilized? --> " << FlowFactStabilized << '\n';
330330
if (!FlowFactStabilized) {
331-
mono_container_t merge;
332-
merge.insert(Analysis[RetSite][CTXRm].begin(),
331+
mono_container_t Merge;
332+
Merge.insert(Analysis[RetSite][CTXRm].begin(),
333333
Analysis[RetSite][CTXRm].end());
334-
merge.insert(Out[CTXRm].begin(), Out[CTXRm].end());
335-
Analysis[RetSite][CTXRm] = merge;
336-
Analysis[Dst][CTXRm] = merge;
334+
Merge.insert(Out[CTXRm].begin(), Out[CTXRm].end());
335+
Analysis[RetSite][CTXRm] = Merge;
336+
Analysis[Dst][CTXRm] = Merge;
337337
// IMProblem.merge(Analysis[RetSite][CTXRm], Out[CTXRm]);
338338
std::cout << "Merged to: ";
339-
IMProblem.printContainer(std::cout, merge);
339+
IMProblem.printContainer(std::cout, Merge);
340340
std::cout << '\n';
341341
// addToWorklist({Src, RetSite});
342342
}
@@ -388,9 +388,9 @@ template <typename AnalysisDomainTy, unsigned K> class InterMonoSolver {
388388
}
389389
}
390390

391-
mono_container_t getResultsAt(n_t n) {
391+
mono_container_t getResultsAt(n_t Stmt) {
392392
mono_container_t Result;
393-
for (auto &[Ctx, Facts] : Analysis[n]) {
393+
for (auto &[Ctx, Facts] : Analysis[Stmt]) {
394394
Result.insert(Facts.begin(), Facts.end());
395395
}
396396
return Result;

include/phasar/PhasarLLVM/DataFlowSolver/Mono/Solver/IntraMonoSolver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ template <typename AnalysisDomainTy> class IntraMonoSolver {
110110
}
111111
}
112112

113-
mono_container_t getResultsAt(n_t n) { return Analysis[n]; }
113+
mono_container_t getResultsAt(n_t Stmt) { return Analysis[Stmt]; }
114114

115115
virtual void dumpResults(std::ostream &OS = std::cout) {
116116
OS << "Intra-Monotone solver results:\n"

0 commit comments

Comments
 (0)