Kaydet (Commit) 931c51f6 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Make loplugin:defaultparams handle enum values and nullptrs

Change-Id: I0c57b414d9230406cf2632494ccfa576510b0e61
üst e80427ca
......@@ -57,16 +57,17 @@ bool DefaultParams::VisitCallExpr(CallExpr * callExpr) {
break;
}
const Expr* defaultArgExpr = parmVarDecl->getDefaultArg();
if (!(defaultArgExpr &&
defaultArgExpr->getType()->isIntegralType(
compiler.getASTContext())))
{
if (!defaultArgExpr) {
break;
}
APSInt x1, x2;
if (!(arg->EvaluateAsInt(x1, compiler.getASTContext()) &&
defaultArgExpr->EvaluateAsInt(x2, compiler.getASTContext()) &&
x1 == x2))
if (!((defaultArgExpr->isNullPointerConstant(
compiler.getASTContext(), Expr::NPC_NeverValueDependent)
&& arg->isNullPointerConstant(
compiler.getASTContext(), Expr::NPC_NeverValueDependent))
|| (defaultArgExpr->EvaluateAsInt(x1, compiler.getASTContext())
&& arg->EvaluateAsInt(x2, compiler.getASTContext())
&& x1 == x2)))
{
break;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment