diff --git a/include/llvm/Analysis/DSNode.h b/include/llvm/Analysis/DSNode.h index 367c377a34a..9ade44437cb 100644 --- a/include/llvm/Analysis/DSNode.h +++ b/include/llvm/Analysis/DSNode.h @@ -126,13 +126,19 @@ public: } DSNodeHandle *getLink(unsigned i) { - if (hasLink(i)) + if (hasLink(i)) { + assert((unsigned)MergeMap[i] < Links.size() && + "MergeMap references Link that doesn't exist!"); return &Links[MergeMap[i]]; + } return 0; } const DSNodeHandle *getLink(unsigned i) const { - if (hasLink(i)) + if (hasLink(i)) { + assert((unsigned)MergeMap[i] < Links.size() && + "MergeMap references Link that doesn't exist!"); return &Links[MergeMap[i]]; + } return 0; } @@ -226,6 +232,8 @@ private: /// void rewriteMergeMap(signed char From, signed char To) { assert(From != To && "Cannot change something into itself!"); + assert(To < (int)Links.size() && + "Changing MergeMap entry to an illegal entry!"); for (unsigned i = 0, e = MergeMap.size(); i != e; ++i) if (MergeMap[i] == From) MergeMap[i] = To; diff --git a/include/llvm/Analysis/DataStructure/DSNode.h b/include/llvm/Analysis/DataStructure/DSNode.h index 367c377a34a..9ade44437cb 100644 --- a/include/llvm/Analysis/DataStructure/DSNode.h +++ b/include/llvm/Analysis/DataStructure/DSNode.h @@ -126,13 +126,19 @@ public: } DSNodeHandle *getLink(unsigned i) { - if (hasLink(i)) + if (hasLink(i)) { + assert((unsigned)MergeMap[i] < Links.size() && + "MergeMap references Link that doesn't exist!"); return &Links[MergeMap[i]]; + } return 0; } const DSNodeHandle *getLink(unsigned i) const { - if (hasLink(i)) + if (hasLink(i)) { + assert((unsigned)MergeMap[i] < Links.size() && + "MergeMap references Link that doesn't exist!"); return &Links[MergeMap[i]]; + } return 0; } @@ -226,6 +232,8 @@ private: /// void rewriteMergeMap(signed char From, signed char To) { assert(From != To && "Cannot change something into itself!"); + assert(To < (int)Links.size() && + "Changing MergeMap entry to an illegal entry!"); for (unsigned i = 0, e = MergeMap.size(); i != e; ++i) if (MergeMap[i] == From) MergeMap[i] = To;