diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index 28440f4..9eeaa86 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -207,7 +207,6 @@
 
   APValue VisitBinaryOperator(const BinaryOperator *E);
   APValue VisitCastExpr(const CastExpr* E);
-  APValue VisitCallExpr(CallExpr *E);
   APValue VisitUnaryOperator(const UnaryOperator *E);
   APValue VisitObjCStringLiteral(ObjCStringLiteral *E)
       { return APValue(E, 0); }
@@ -267,6 +266,7 @@
 
   return APValue();
 }
+  
 
 APValue PointerExprEvaluator::VisitCastExpr(const CastExpr* E) {
   const Expr* SubExpr = E->getSubExpr();
@@ -299,15 +299,6 @@
   return APValue();
 }  
 
-APValue PointerExprEvaluator::VisitCallExpr(CallExpr *E)
-{
-  switch (E->isBuiltinCall()) {
-    default: return APValue();
-    case Builtin::BI__builtin___CFStringMakeConstantString:
-      return APValue(E, 0);
-  }
-}
-
 APValue PointerExprEvaluator::VisitConditionalOperator(ConditionalOperator *E) {
   bool BoolResult;
   if (!HandleConversionToBool(E->getCond(), BoolResult, Info))
