Skip to content

Commit

Permalink
Revert "[Analyzer][solver] Add dump methods for (dis)equality classes."
Browse files Browse the repository at this point in the history
This reverts commit 6f3b775.
Test fails flakily, see comments on https://reviews.llvm.org/D103967

Also revert follow-up "[Analyzer] Attempt to fix windows bots test
failure b/c of new-line"
This reverts commit fe0e861.
  • Loading branch information
nico committed Jun 28, 2021
1 parent 540b4a5 commit d5402a2
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 197 deletions.
138 changes: 0 additions & 138 deletions clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
Expand Up @@ -592,11 +592,6 @@ class EquivalenceClass : public llvm::FoldingSetNode {
RangeSet::Factory &F,
ProgramStateRef State);

void dumpToStream(ProgramStateRef State, raw_ostream &os) const;
LLVM_DUMP_METHOD void dump(ProgramStateRef State) const {
dumpToStream(State, llvm::errs());
}

/// Check equivalence data for consistency.
LLVM_NODISCARD LLVM_ATTRIBUTE_UNUSED static bool
isClassDataConsistent(ProgramStateRef State);
Expand Down Expand Up @@ -1410,17 +1405,6 @@ class RangeConstraintManager : public RangedConstraintManager {

void printJson(raw_ostream &Out, ProgramStateRef State, const char *NL = "\n",
unsigned int Space = 0, bool IsDot = false) const override;
void printConstraints(raw_ostream &Out, ProgramStateRef State,
const char *NL = "\n", unsigned int Space = 0,
bool IsDot = false) const;
void printEquivalenceClasses(raw_ostream &Out, ProgramStateRef State,
const char *NL = "\n", unsigned int Space = 0,
bool IsDot = false) const;
void printEquivalenceClass(raw_ostream &Out, ProgramStateRef State,
EquivalenceClass Class) const;
void printDisequalities(raw_ostream &Out, ProgramStateRef State,
const char *NL = "\n", unsigned int Space = 0,
bool IsDot = false) const;

//===------------------------------------------------------------------===//
// Implementation for interface from RangedConstraintManager.
Expand Down Expand Up @@ -1644,15 +1628,6 @@ ConstraintMap ento::getConstraintMap(ProgramStateRef State) {
// EqualityClass implementation details
//===----------------------------------------------------------------------===//

LLVM_DUMP_METHOD void EquivalenceClass::dumpToStream(ProgramStateRef State,
raw_ostream &os) const {
SymbolSet ClassMembers = getClassMembers(State);
for (const SymbolRef &MemberSym : ClassMembers) {
MemberSym->dump();
os << "\n";
}
}

inline EquivalenceClass EquivalenceClass::find(ProgramStateRef State,
SymbolRef Sym) {
assert(State && "State should not be null");
Expand Down Expand Up @@ -2493,16 +2468,6 @@ ProgramStateRef RangeConstraintManager::assumeSymOutsideInclusiveRange(
void RangeConstraintManager::printJson(raw_ostream &Out, ProgramStateRef State,
const char *NL, unsigned int Space,
bool IsDot) const {
printConstraints(Out, State, NL, Space, IsDot);
printEquivalenceClasses(Out, State, NL, Space, IsDot);
printDisequalities(Out, State, NL, Space, IsDot);
}

void RangeConstraintManager::printConstraints(raw_ostream &Out,
ProgramStateRef State,
const char *NL,
unsigned int Space,
bool IsDot) const {
ConstraintRangeTy Constraints = State->get<ConstraintRange>();

Indent(Out, Space, IsDot) << "\"constraints\": ";
Expand Down Expand Up @@ -2536,106 +2501,3 @@ void RangeConstraintManager::printConstraints(raw_ostream &Out,
--Space;
Indent(Out, Space, IsDot) << "]," << NL;
}

void RangeConstraintManager::printEquivalenceClass(
raw_ostream &Out, ProgramStateRef State, EquivalenceClass Class) const {
bool FirstMember = true;
SymbolSet ClassMembers = Class.getClassMembers(State);
Out << "[ ";
for (SymbolRef ClassMember : ClassMembers) {
if (FirstMember)
FirstMember = false;
else
Out << ", ";
Out << "\"" << ClassMember << "\"";
}
Out << " ]";
}

void RangeConstraintManager::printEquivalenceClasses(raw_ostream &Out,
ProgramStateRef State,
const char *NL,
unsigned int Space,
bool IsDot) const {
ClassMembersTy Members = State->get<ClassMembers>();

Indent(Out, Space, IsDot) << "\"equivalence_classes\": ";
if (Members.isEmpty()) {
Out << "null," << NL;
return;
}

++Space;
Out << '[' << NL;
bool FirstClass = true;
for (std::pair<EquivalenceClass, SymbolSet> ClassToSymbolSet : Members) {
EquivalenceClass Class = ClassToSymbolSet.first;

if (FirstClass) {
FirstClass = false;
} else {
Out << ',';
Out << NL;
}
Indent(Out, Space, IsDot);
printEquivalenceClass(Out, State, Class);
}
Out << NL;

--Space;
Indent(Out, Space, IsDot) << "]," << NL;
}

void RangeConstraintManager::printDisequalities(raw_ostream &Out,
ProgramStateRef State,
const char *NL,
unsigned int Space,
bool IsDot) const {
DisequalityMapTy Disequalities = State->get<DisequalityMap>();

Indent(Out, Space, IsDot) << "\"disequality_info\": ";
if (Disequalities.isEmpty()) {
Out << "null," << NL;
return;
}

++Space;
Out << '[' << NL;
bool FirstClass = true;
for (std::pair<EquivalenceClass, ClassSet> ClassToDisEqSet : Disequalities) {
EquivalenceClass Class = ClassToDisEqSet.first;
if (FirstClass) {
FirstClass = false;
} else {
Out << ',';
Out << NL;
}
Indent(Out, Space, IsDot) << "{" << NL;
unsigned int DisEqSpace = Space + 1;
Indent(Out, DisEqSpace, IsDot) << "\"class\": ";
printEquivalenceClass(Out, State, Class);
ClassSet DisequalClasses = ClassToDisEqSet.second;
if (!DisequalClasses.isEmpty()) {
Out << "," << NL;
Indent(Out, DisEqSpace, IsDot) << "\"disequal_to\": [" << NL;
unsigned int DisEqClassSpace = DisEqSpace + 1;
Indent(Out, DisEqClassSpace, IsDot);
bool FirstDisEqClass = true;
for (EquivalenceClass DisEqClass : DisequalClasses) {
if (FirstDisEqClass) {
FirstDisEqClass = false;
} else {
Out << ',' << NL;
Indent(Out, DisEqClassSpace, IsDot);
}
printEquivalenceClass(Out, State, DisEqClass);
}
Out << "]" << NL;
}
Indent(Out, Space, IsDot) << "}";
}
Out << NL;

--Space;
Indent(Out, Space, IsDot) << "]," << NL;
}
35 changes: 0 additions & 35 deletions clang/test/Analysis/expr-inspection-printState-diseq-info.c

This file was deleted.

22 changes: 0 additions & 22 deletions clang/test/Analysis/expr-inspection-printState-eq-classes.c

This file was deleted.

2 changes: 0 additions & 2 deletions clang/test/Analysis/expr-inspection.c
Expand Up @@ -38,8 +38,6 @@ void foo(int x) {
// CHECK-NEXT: "constraints": [
// CHECK-NEXT: { "symbol": "reg_$0<int x>", "range": "{ [-2147483648, 13] }" }
// CHECK-NEXT: ],
// CHECK-NEXT: "equivalence_classes": null,
// CHECK-NEXT: "disequality_info": null,
// CHECK-NEXT: "dynamic_types": null,
// CHECK-NEXT: "dynamic_casts": null,
// CHECK-NEXT: "constructing_objects": null,
Expand Down

0 comments on commit d5402a2

Please sign in to comment.