#include "clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h"
#include "clang/Analysis/PathDiagnostic.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/Type.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugReporter.h"
#include "clang/StaticAnalyzer/Core/Checker.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/raw_ostream.h"
usingnamespaceclang;
usingnamespaceento;
static bool AreTypesCompatible(QualType Derived, QualType Ancestor,
ASTContext &C) { … }
static void CompareReturnTypes(const ObjCMethodDecl *MethDerived,
const ObjCMethodDecl *MethAncestor,
BugReporter &BR, ASTContext &Ctx,
const ObjCImplementationDecl *ID,
const CheckerBase *Checker) { … }
static void CheckObjCInstMethSignature(const ObjCImplementationDecl *ID,
BugReporter &BR,
const CheckerBase *Checker) { … }
namespace {
class ObjCMethSigsChecker : public Checker<
check::ASTDecl<ObjCImplementationDecl> > { … };
}
void ento::registerObjCMethSigsChecker(CheckerManager &mgr) { … }
bool ento::shouldRegisterObjCMethSigsChecker(const CheckerManager &mgr) { … }