@@ -1057,6 +1057,7 @@ template <typename DerivedCCG, typename FuncTy, typename CallTy>
1057
1057
void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::removeEdgeFromGraph(
1058
1058
ContextEdge *Edge, EdgeIter *EI, bool CalleeIter) {
1059
1059
assert (!EI || (*EI)->get () == Edge);
1060
+ assert (!Edge->isRemoved ());
1060
1061
// Save the Caller and Callee pointers so we can erase Edge from their edge
1061
1062
// lists after clearing Edge below. We do the clearing first in case it is
1062
1063
// destructed after removing from the edge lists (if those were the last
@@ -1069,6 +1070,10 @@ void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::removeEdgeFromGraph(
1069
1070
// reference.
1070
1071
Edge->clear ();
1071
1072
1073
+ #ifndef NDEBUG
1074
+ auto CalleeCallerCount = Callee->CallerEdges .size ();
1075
+ auto CallerCalleeCount = Caller->CalleeEdges .size ();
1076
+ #endif
1072
1077
if (!EI) {
1073
1078
Callee->eraseCallerEdge (Edge);
1074
1079
Caller->eraseCalleeEdge (Edge);
@@ -1079,6 +1084,8 @@ void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::removeEdgeFromGraph(
1079
1084
Caller->eraseCalleeEdge (Edge);
1080
1085
*EI = Callee->CallerEdges .erase (*EI);
1081
1086
}
1087
+ assert (Callee->CallerEdges .size () < CalleeCallerCount);
1088
+ assert (Caller->CalleeEdges .size () < CallerCalleeCount);
1082
1089
}
1083
1090
1084
1091
template <typename DerivedCCG, typename FuncTy, typename CallTy>
0 commit comments