ClangCheckers.cpp revision 08b86531ade68727c56918f162816075b87c864a
108b86531ade68727c56918f162816075b87c864aJordy Rose//===--- ClangCheckers.h - Provides builtin checkers ------------*- C++ -*-===//
208b86531ade68727c56918f162816075b87c864aJordy Rose//
308b86531ade68727c56918f162816075b87c864aJordy Rose//                     The LLVM Compiler Infrastructure
408b86531ade68727c56918f162816075b87c864aJordy Rose//
508b86531ade68727c56918f162816075b87c864aJordy Rose// This file is distributed under the University of Illinois Open Source
608b86531ade68727c56918f162816075b87c864aJordy Rose// License. See LICENSE.TXT for details.
708b86531ade68727c56918f162816075b87c864aJordy Rose//
808b86531ade68727c56918f162816075b87c864aJordy Rose//===----------------------------------------------------------------------===//
908b86531ade68727c56918f162816075b87c864aJordy Rose
1008b86531ade68727c56918f162816075b87c864aJordy Rose#include "clang/StaticAnalyzer/Checkers/ClangCheckers.h"
1108b86531ade68727c56918f162816075b87c864aJordy Rose#include "clang/StaticAnalyzer/Core/CheckerRegistry.h"
1208b86531ade68727c56918f162816075b87c864aJordy Rose
1308b86531ade68727c56918f162816075b87c864aJordy Rose// FIXME: This is only necessary as long as there are checker registration
1408b86531ade68727c56918f162816075b87c864aJordy Rose// functions that do additional work besides mgr.registerChecker<CLASS>().
1508b86531ade68727c56918f162816075b87c864aJordy Rose// The only checkers that currently do this are:
1608b86531ade68727c56918f162816075b87c864aJordy Rose// - NSAutoreleasePoolChecker
1708b86531ade68727c56918f162816075b87c864aJordy Rose// - NSErrorChecker
1808b86531ade68727c56918f162816075b87c864aJordy Rose// - ObjCAtSyncChecker
1908b86531ade68727c56918f162816075b87c864aJordy Rose// It's probably worth including this information in Checkers.td to minimize
2008b86531ade68727c56918f162816075b87c864aJordy Rose// boilerplate code.
2108b86531ade68727c56918f162816075b87c864aJordy Rose#include "ClangSACheckers.h"
2208b86531ade68727c56918f162816075b87c864aJordy Rose
2308b86531ade68727c56918f162816075b87c864aJordy Roseusing namespace clang;
2408b86531ade68727c56918f162816075b87c864aJordy Roseusing namespace ento;
2508b86531ade68727c56918f162816075b87c864aJordy Rose
2608b86531ade68727c56918f162816075b87c864aJordy Rosevoid ento::registerBuiltinCheckers(CheckerRegistry &registry) {
2708b86531ade68727c56918f162816075b87c864aJordy Rose#define GET_CHECKERS
2808b86531ade68727c56918f162816075b87c864aJordy Rose#define CHECKER(FULLNAME,CLASS,DESCFILE,HELPTEXT,GROUPINDEX,HIDDEN)    \
2908b86531ade68727c56918f162816075b87c864aJordy Rose  registry.addChecker(register##CLASS, FULLNAME, HELPTEXT);
3008b86531ade68727c56918f162816075b87c864aJordy Rose#include "Checkers.inc"
3108b86531ade68727c56918f162816075b87c864aJordy Rose#undef GET_CHECKERS
3208b86531ade68727c56918f162816075b87c864aJordy Rose}
33