diff options
Diffstat (limited to 'compilerplugins/clang/simplifyconstruct.cxx')
-rw-r--r-- | compilerplugins/clang/simplifyconstruct.cxx | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/compilerplugins/clang/simplifyconstruct.cxx b/compilerplugins/clang/simplifyconstruct.cxx index c3e28ce7bcda..55f2404f8ab1 100644 --- a/compilerplugins/clang/simplifyconstruct.cxx +++ b/compilerplugins/clang/simplifyconstruct.cxx @@ -87,19 +87,15 @@ bool SimplifyConstruct::VisitVarDecl(VarDecl const* varDecl) if (isa<AutoType>(varDecl->getType())) return true; - auto init = varDecl->getInit()->IgnoreImplicit(); - auto functionalCast = dyn_cast<CXXFunctionalCastExpr>(init); - if (!functionalCast) + auto init = varDecl->getInit(); + if (!isa<CXXFunctionalCastExpr>(init->IgnoreImplicit()) && !isa<CXXTemporaryObjectExpr>(init) + && !isa<CXXTemporaryObjectExpr>(init->IgnoreImplicit())) return true; // e.g. the LANGUAGE_DONTKNOW defines if (compiler.getSourceManager().isMacroBodyExpansion(compat::getBeginLoc(init))) return true; - // varDecl->getInit()->IgnoreImplicit()->dump(); - // varDecl->getType()->dump(); - // varDecl->getType()->getUnqualifiedDesugaredType()->dump(); - report(DiagnosticsEngine::Warning, "simplify", varDecl->getLocation()) << varDecl->getSourceRange(); |