diff --git a/lib/Analysis/Expressions.cpp b/lib/Analysis/Expressions.cpp index 14ba9c8e9dc..bfab20c42c8 100644 --- a/lib/Analysis/Expressions.cpp +++ b/lib/Analysis/Expressions.cpp @@ -244,11 +244,9 @@ ExprType ClassifyExpression(Value *Expr) { case Value::ArgumentVal: // nothing known, return variable itself return Expr; case Value::ConstantVal: // Constant value, just return constant - Constant *CPV = cast(Expr); - if (CPV->getType()->isInteger()) { // It's an integral constant! - ConstantInt *CPI = cast(Expr); + if (ConstantInt *CPI = dyn_cast(cast(Expr))) + // It's an integral constant! return ExprType(CPI->isNullValue() ? 0 : CPI); - } return Expr; }