diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2015-08-14 12:19:55 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2015-08-14 13:18:56 +0200 |
commit | 65aa35fbeeb837c229209daf558da74d8237dab5 (patch) | |
tree | 5c0ae57b30e1488a7c19164e22d4a1131850742e /compilerplugins | |
parent | 9d094b9f0a05d2ea62181201efb8f9e46ecfc8f1 (diff) |
Don't trigger assert in clang::ParmVarDecl::getDefaultArg
Change-Id: Ica385b513d87d639496ac470da296e871b093ab4
Diffstat (limited to 'compilerplugins')
-rw-r--r-- | compilerplugins/clang/defaultparams.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/compilerplugins/clang/defaultparams.cxx b/compilerplugins/clang/defaultparams.cxx index e71d89ae9753..fc63b3558242 100644 --- a/compilerplugins/clang/defaultparams.cxx +++ b/compilerplugins/clang/defaultparams.cxx @@ -52,9 +52,13 @@ bool DefaultParams::VisitCallExpr(CallExpr * callExpr) { if (isa<UnaryExprOrTypeTraitExpr>(arg)) return true; const ParmVarDecl* parmVarDecl = functionDecl->getParamDecl(i); + if (!parmVarDecl->hasDefaultArg() + || parmVarDecl->hasUninstantiatedDefaultArg()) + { + return true; + } const Expr* defaultArgExpr = parmVarDecl->getDefaultArg(); - if (parmVarDecl->hasDefaultArg() && - defaultArgExpr && + if (defaultArgExpr && defaultArgExpr->getType()->isIntegralType(compiler.getASTContext())) { APSInt x1, x2; |