aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Analysis/DSNode.h12
-rw-r--r--include/llvm/Analysis/DataStructure/DSNode.h12
2 files changed, 20 insertions, 4 deletions
diff --git a/include/llvm/Analysis/DSNode.h b/include/llvm/Analysis/DSNode.h
index 367c377a34..9ade44437c 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 367c377a34..9ade44437c 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;