Kaydet (Commit) 65aa35fb authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Don't trigger assert in clang::ParmVarDecl::getDefaultArg

Change-Id: Ica385b513d87d639496ac470da296e871b093ab4
üst 9d094b9f
...@@ -52,9 +52,13 @@ bool DefaultParams::VisitCallExpr(CallExpr * callExpr) { ...@@ -52,9 +52,13 @@ bool DefaultParams::VisitCallExpr(CallExpr * callExpr) {
if (isa<UnaryExprOrTypeTraitExpr>(arg)) if (isa<UnaryExprOrTypeTraitExpr>(arg))
return true; return true;
const ParmVarDecl* parmVarDecl = functionDecl->getParamDecl(i); const ParmVarDecl* parmVarDecl = functionDecl->getParamDecl(i);
if (!parmVarDecl->hasDefaultArg()
|| parmVarDecl->hasUninstantiatedDefaultArg())
{
return true;
}
const Expr* defaultArgExpr = parmVarDecl->getDefaultArg(); const Expr* defaultArgExpr = parmVarDecl->getDefaultArg();
if (parmVarDecl->hasDefaultArg() && if (defaultArgExpr &&
defaultArgExpr &&
defaultArgExpr->getType()->isIntegralType(compiler.getASTContext())) defaultArgExpr->getType()->isIntegralType(compiler.getASTContext()))
{ {
APSInt x1, x2; APSInt x1, x2;
......
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