diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index 30ef6f3..7f83173 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -70,9 +70,20 @@
 //===----------------------------------------------------------------------===//
 
 static bool EvalPointerValueAsBool(APValue& Value, bool& Result) {
-  // FIXME: Is this accurate for all kinds of bases?  If not, what would
-  // the check look like?
-  Result = Value.getLValueBase() || !Value.getLValueOffset().isZero();
+  const Expr* Base = Value.getLValueBase();
+
+  Result = Base || !Value.getLValueOffset().isZero();
+
+  const DeclRefExpr* DeclRef = dyn_cast<DeclRefExpr>(Base);
+  if (!DeclRef)
+    return true;
+
+  const ValueDecl* Decl = DeclRef->getDecl();
+  if (Decl->hasAttr<WeakAttr>() ||
+      Decl->hasAttr<WeakRefAttr>() ||
+      Decl->hasAttr<WeakImportAttr>())
+    return false;
+
   return true;
 }
 
diff --git a/test/Sema/init.c b/test/Sema/init.c
index b9867cf..c2c29ad 100644
--- a/test/Sema/init.c
+++ b/test/Sema/init.c
@@ -131,3 +131,17 @@
 // PR5447
 const double pr5447 = (0.05 < -1.0) ? -1.0 : 0.0499878;
 
+// PR4386
+
+// None of these are constant initializers, but we implement GCC's old
+// behaviour of accepting bar and zed but not foo. GCC's behaviour was
+// changed in 2007 (rev 122551), so we should be able to change too one
+// day.
+int PR4386_bar();
+int PR4386_foo() __attribute((weak));
+int PR4386_zed();
+
+int PR4386_a = ((void *) PR4386_bar) != 0;
+int PR4386_b = ((void *) PR4386_foo) != 0; // expected-error{{initializer element is not a compile-time constant}}
+int PR4386_c = ((void *) PR4386_zed) != 0;
+int PR4386_zed() __attribute((weak));
