diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index c244916..b0954e1 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -918,7 +918,6 @@
       !RHSTy->isIntegralType()) {
     // We can't continue from here for non-integral types, and they
     // could potentially confuse the following operations.
-    // FIXME: Deal with EQ and friends.
     return false;
   }
 
@@ -926,14 +925,36 @@
   if (!Visit(E->getLHS()))
     return false; // error in subexpression.
 
-  // Only support arithmetic on integers for now.
-  if (!Result.isInt())
+  APValue RHSVal;
+  if (!EvaluateIntegerOrLValue(E->getRHS(), RHSVal, Info))
     return false;
-  
-  llvm::APSInt RHS;
-  if (!EvaluateInteger(E->getRHS(), RHS, Info))
+
+  // Handle cases like (unsigned long)&a + 4.
+  if (E->isAdditiveOp() && Result.isLValue() && RHSVal.isInt()) {
+    uint64_t offset = Result.getLValueOffset();
+    if (E->getOpcode() == BinaryOperator::Add)
+      offset += RHSVal.getInt().getZExtValue();
+    else
+      offset -= RHSVal.getInt().getZExtValue();
+    Result = APValue(Result.getLValueBase(), offset);
+    return true;
+  }
+
+  // Handle cases like 4 + (unsigned long)&a
+  if (E->getOpcode() == BinaryOperator::Add &&
+        RHSVal.isLValue() && Result.isInt()) {
+    uint64_t offset = RHSVal.getLValueOffset();
+    offset += Result.getInt().getZExtValue();
+    Result = APValue(RHSVal.getLValueBase(), offset);
+    return true;
+  }
+
+  // All the following cases expect both operands to be an integer
+  if (!Result.isInt() || !RHSVal.isInt())
     return false;
 
+  APSInt& RHS = RHSVal.getInt();
+
   switch (E->getOpcode()) {
   default:
     return Error(E->getOperatorLoc(), diag::note_invalid_subexpr_in_ice, E);
diff --git a/test/Sema/init.c b/test/Sema/init.c
index 6f592b8..73c6887 100644
--- a/test/Sema/init.c
+++ b/test/Sema/init.c
@@ -120,3 +120,6 @@
 ivector4 vtest3 = __real__ (ivector4){1};
 ivector4 vtest4 = __imag__ (ivector4){1};
 
+uintptr_t ptrasintadd1 = (uintptr_t)&a - 4;
+uintptr_t ptrasintadd2 = (uintptr_t)&a + 4;
+uintptr_t ptrasintadd3 = 4 + (uintptr_t)&a;
