clang  6.0.0svn
Checker.cpp
Go to the documentation of this file.
1 //== Checker.cpp - Registration mechanism for checkers -----------*- C++ -*--=//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines Checker, used to create and register checkers.
11 //
12 //===----------------------------------------------------------------------===//
13 
16 
17 using namespace clang;
18 using namespace ento;
19 
20 StringRef CheckerBase::getTagDescription() const {
21  return getCheckName().getName();
22 }
23 
24 CheckName CheckerBase::getCheckName() const { return Name; }
25 
27  StringRef Msg)
28  : SimpleProgramPointTag(CheckerName, Msg) {}
29 
31  StringRef Msg)
32  : SimpleProgramPointTag(Checker->getCheckName().getName(), Msg) {}
33 
34 raw_ostream& clang::ento::operator<<(raw_ostream &Out,
35  const CheckerBase &Checker) {
36  Out << Checker.getCheckName().getName();
37  return Out;
38 }
CheckName getCheckName() const
Definition: Checker.cpp:24
StringRef getTagDescription() const override
Definition: Checker.cpp:20
StringRef getName() const
CheckerProgramPointTag(StringRef CheckerName, StringRef Msg)
Definition: Checker.cpp:26
Dataflow Directional Tag Classes.
raw_ostream & operator<<(raw_ostream &Out, const CheckerBase &Checker)
Dump checker name to stream.
Definition: Checker.cpp:34