diff --git a/lib/Analysis/DataStructure/CompleteBottomUp.cpp b/lib/Analysis/DataStructure/CompleteBottomUp.cpp
index 2dba931..1c9e329 100644
--- a/lib/Analysis/DataStructure/CompleteBottomUp.cpp
+++ b/lib/Analysis/DataStructure/CompleteBottomUp.cpp
@@ -122,7 +122,8 @@
   Stack.push_back(&FG);
 
   // The edges out of the current node are the call site targets...
-  for (DSGraph::fc_iterator CI = FG.fc_begin(), E = FG.fc_end(); CI != E; ++CI){
+  for (DSGraph::fc_iterator CI = FG.fc_begin(), CE = FG.fc_end();
+       CI != CE; ++CI) {
     Instruction *Call = CI->getCallSite().getInstruction();
 
     // Loop over all of the actually called functions...
@@ -185,7 +186,7 @@
 
   // The edges out of the current node are the call site targets...
   unsigned i = 0;
-  for (DSGraph::fc_iterator CI = G.fc_begin(), E = G.fc_end(); CI != E;
+  for (DSGraph::fc_iterator CI = G.fc_begin(), CE = G.fc_end(); CI != CE;
        ++CI, ++i) {
     const DSCallSite &CS = *CI;
     Instruction *TheCall = CS.getCallSite().getInstruction();
diff --git a/lib/Analysis/DataStructure/DataStructure.cpp b/lib/Analysis/DataStructure/DataStructure.cpp
index 35d9c47..039bd09 100644
--- a/lib/Analysis/DataStructure/DataStructure.cpp
+++ b/lib/Analysis/DataStructure/DataStructure.cpp
@@ -1595,17 +1595,17 @@
   Calls.sort();
 
   // Now that we are in sorted order, eliminate duplicates.
-  std::list<DSCallSite>::iterator I = Calls.begin(), E = Calls.end();
-  if (I != E)
+  std::list<DSCallSite>::iterator CI = Calls.begin(), CE = Calls.end();
+  if (CI != CE)
     while (1) {
-      std::list<DSCallSite>::iterator OldIt = I++;
-      if (I == E) break;
+      std::list<DSCallSite>::iterator OldIt = CI++;
+      if (CI == CE) break;
 
       // If this call site is now the same as the previous one, we can delete it
       // as a duplicate.
-      if (*OldIt == *I) {
-        Calls.erase(I);
-        I = OldIt;
+      if (*OldIt == *CI) {
+        Calls.erase(CI);
+        CI = OldIt;
         ++NumDeleted;
       }
     }
