#include "ExceptionAnalyzer.h"
namespace clang::tidy::utils {
void ExceptionAnalyzer::ExceptionInfo::registerException(
const Type *ExceptionType) { … }
void ExceptionAnalyzer::ExceptionInfo::registerExceptions(
const Throwables &Exceptions) { … }
ExceptionAnalyzer::ExceptionInfo &ExceptionAnalyzer::ExceptionInfo::merge(
const ExceptionAnalyzer::ExceptionInfo &Other) { … }
namespace {
bool isUnambiguousPublicBaseClass(const Type *DerivedType,
const Type *BaseType) { … }
inline bool isPointerOrPointerToMember(const Type *T) { … }
std::optional<QualType> getPointeeOrArrayElementQualType(QualType T) { … }
bool isBaseOf(const Type *DerivedType, const Type *BaseType) { … }
bool moreOrEquallyQualified(QualType T1, QualType T2) { … }
bool isStandardPointerConvertible(QualType From, QualType To) { … }
bool isFunctionPointerConvertible(QualType From, QualType To) { … }
bool isQualificationConvertiblePointer(QualType From, QualType To,
LangOptions LangOpts) { … }
}
static bool canThrow(const FunctionDecl *Func) { … }
bool ExceptionAnalyzer::ExceptionInfo::filterByCatch(
const Type *HandlerTy, const ASTContext &Context) { … }
ExceptionAnalyzer::ExceptionInfo &
ExceptionAnalyzer::ExceptionInfo::filterIgnoredExceptions(
const llvm::StringSet<> &IgnoredTypes, bool IgnoreBadAlloc) { … }
void ExceptionAnalyzer::ExceptionInfo::clear() { … }
void ExceptionAnalyzer::ExceptionInfo::reevaluateBehaviour() { … }
ExceptionAnalyzer::ExceptionInfo ExceptionAnalyzer::throwsException(
const FunctionDecl *Func, const ExceptionInfo::Throwables &Caught,
llvm::SmallSet<const FunctionDecl *, 32> &CallStack) { … }
ExceptionAnalyzer::ExceptionInfo ExceptionAnalyzer::throwsException(
const Stmt *St, const ExceptionInfo::Throwables &Caught,
llvm::SmallSet<const FunctionDecl *, 32> &CallStack) { … }
ExceptionAnalyzer::ExceptionInfo
ExceptionAnalyzer::analyzeImpl(const FunctionDecl *Func) { … }
ExceptionAnalyzer::ExceptionInfo
ExceptionAnalyzer::analyzeImpl(const Stmt *Stmt) { … }
template <typename T>
ExceptionAnalyzer::ExceptionInfo
ExceptionAnalyzer::analyzeDispatch(const T *Node) { … }
ExceptionAnalyzer::ExceptionInfo
ExceptionAnalyzer::analyze(const FunctionDecl *Func) { … }
ExceptionAnalyzer::ExceptionInfo ExceptionAnalyzer::analyze(const Stmt *Stmt) { … }
}