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 ®istry) { 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