lebedev.ri added a comment. In D59650#1438515 <https://reviews.llvm.org/D59650#1438515>, @JonasToth wrote:
> Why not having normal overloads? The analysis for `Stmt` is implemented with > the private methods. Explicit template specialization is a bit overkill and > so easily understood (but not too complex in this case either).l The alternative is to add something like: ExceptionAnalyzer::ExceptionInfo ExceptionAnalyzer::analyze(const Stmt *Stmt) { ExceptionInfo ExceptionList; llvm::SmallSet<const FunctionDecl *, 32> CallStack; ExceptionList = throwsException(Func, CallStack); if (ExceptionList.getBehaviour() == State::NotThrowing || ExceptionList.getBehaviour() == State::Unknown) return ExceptionList; // Remove all ignored exceptions from the list of exceptions that can be // thrown. ExceptionList.filterIgnoredExceptions(IgnoredExceptions, IgnoreBadAlloc); return ExceptionList; } .. which ends up duplicating all of the boilerplate (blacklist in particular) from `ExceptionAnalyzer::analyze(const FunctionDecl *Func)`. Looks like pointless code duplication that is easily avoidable. Repository: rCTE Clang Tools Extra CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59650/new/ https://reviews.llvm.org/D59650 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits