diff options
Diffstat (limited to 'lib/AST/ExprConstant.cpp')
-rw-r--r-- | lib/AST/ExprConstant.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index 76bdaa2c8f..43b45612b9 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -217,6 +217,7 @@ public: { return APValue(E, 0); } APValue VisitAddrLabelExpr(AddrLabelExpr *E) { return APValue(E, 0); } + APValue VisitCallExpr(CallExpr *E); APValue VisitConditionalOperator(ConditionalOperator *E); }; } // end anonymous namespace @@ -306,6 +307,12 @@ APValue PointerExprEvaluator::VisitCastExpr(const CastExpr* E) { return APValue(); } +APValue PointerExprEvaluator::VisitCallExpr(CallExpr *E) { + if (E->isBuiltinCall() == Builtin::BI__builtin___CFStringMakeConstantString) + return APValue(E, 0); + return APValue(); +} + APValue PointerExprEvaluator::VisitConditionalOperator(ConditionalOperator *E) { bool BoolResult; if (!HandleConversionToBool(E->getCond(), BoolResult, Info)) |