Checker.cpp revision 651f13cea278ec967336033dd032faef0e9fc2ec
1ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek//== Checker.cpp - Registration mechanism for checkers -----------*- C++ -*--=// 2ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// 3ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// The LLVM Compiler Infrastructure 4ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// 5ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// This file is distributed under the University of Illinois Open Source 6ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// License. See LICENSE.TXT for details. 7ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// 8ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek//===----------------------------------------------------------------------===// 9ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// 10ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// This file defines Checker, used to create and register checkers. 11ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek// 12ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek//===----------------------------------------------------------------------===// 13ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek 14a5888f61be9f8d76e9b48a453dbced50523bd2e0Argyrios Kyrtzidis#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h" 15ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek#include "clang/StaticAnalyzer/Core/Checker.h" 16ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek 17ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenekusing namespace clang; 18ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenekusing namespace ento; 19ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek 20ca804539d908d3a0e8c72a0df5f1f571d29490bbTed KremenekStringRef CheckerBase::getTagDescription() const { 21651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return getCheckName().getName(); 22651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines} 23651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 24651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesCheckName CheckerBase::getCheckName() const { return Name; } 25651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 26651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesCheckerProgramPointTag::CheckerProgramPointTag(StringRef CheckerName, 27651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines StringRef Msg) 28651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines : SimpleProgramPointTag(CheckerName, Msg) {} 29651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 30651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesCheckerProgramPointTag::CheckerProgramPointTag(const CheckerBase *Checker, 31651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines StringRef Msg) 32651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines : SimpleProgramPointTag(Checker->getCheckName().getName(), Msg) {} 33651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 34651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesraw_ostream& clang::ento::operator<<(raw_ostream &Out, 35651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines const CheckerBase &Checker) { 36651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Out << Checker.getCheckName().getName(); 37651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return Out; 38ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek} 3999ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikie 4099ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikievoid Checker<check::_VoidCheck, check::_VoidCheck, check::_VoidCheck, 4199ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikie check::_VoidCheck, check::_VoidCheck, check::_VoidCheck, 4299ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikie check::_VoidCheck, check::_VoidCheck, check::_VoidCheck, 4399ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikie check::_VoidCheck, check::_VoidCheck, check::_VoidCheck, 4499ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikie check::_VoidCheck, check::_VoidCheck, check::_VoidCheck, 4599ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikie check::_VoidCheck, check::_VoidCheck, check::_VoidCheck 4699ba9e3bd70671f3441fb974895f226a83ce0e66David Blaikie >::anchor() { } 47