Don't try to fold comparisons between the address of an object and an arbitrary integer constant.  Fixes regression from r143334.

llvm-svn: 143374
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index b34b59d..5a65038 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -1981,6 +1981,12 @@
         // unspecified or undefined behavior.
         if (!E->isEqualityOp())
           return false;
+        // A constant address may compare equal to the address of a symbol.
+        // The one exception is that address of an object cannot compare equal
+        // to the null pointer.
+        if ((!LHSValue.Base && !LHSValue.Offset.isZero()) ||
+            (!RHSValue.Base && !RHSValue.Offset.isZero()))
+          return false;
         // It's implementation-defined whether distinct literals will have
         // distinct addresses. We define it to be unspecified.
         if (IsLiteralLValue(LHSValue) || IsLiteralLValue(RHSValue))