summaryrefslogtreecommitdiffstats
path: root/compilerplugins
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-08-14 12:19:55 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-08-14 13:18:56 +0200
commit65aa35fbeeb837c229209daf558da74d8237dab5 (patch)
tree5c0ae57b30e1488a7c19164e22d4a1131850742e /compilerplugins
parenttdf#92446: Revert apparently bogus attempt at fixing a memory leak (diff)
downloadcore-65aa35fbeeb837c229209daf558da74d8237dab5.tar.gz
core-65aa35fbeeb837c229209daf558da74d8237dab5.zip
Don't trigger assert in clang::ParmVarDecl::getDefaultArg
Change-Id: Ica385b513d87d639496ac470da296e871b093ab4
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/defaultparams.cxx8
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;