diff --git a/clang/lib/CodeGen/CGExprConstant.cpp b/clang/lib/CodeGen/CGExprConstant.cpp index 1e224571f952..e187d890e948 100644 --- a/clang/lib/CodeGen/CGExprConstant.cpp +++ b/clang/lib/CodeGen/CGExprConstant.cpp @@ -619,16 +619,7 @@ public: // Handle __builtin___CFStringMakeConstantString. if (E->isBuiltinCall() ==Builtin::BI__builtin___CFStringMakeConstantString){ - const Expr *Arg = E->getArg(0); - - while (1) { - if (const ParenExpr *PE = dyn_cast(Arg)) - Arg = PE->getSubExpr(); - else if (const ImplicitCastExpr *CE = dyn_cast(Arg)) - Arg = CE->getSubExpr(); - else - break; - } + const Expr *Arg = E->getArg(0)->IgnoreParenCasts(); const StringLiteral *Literal = cast(Arg); std::string S(Literal->getStrData(), Literal->getByteLength());