clang  9.0.0svn
Checker.cpp
Go to the documentation of this file.
1 //== Checker.cpp - Registration mechanism for checkers -----------*- C++ -*--=//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file defines Checker, used to create and register checkers.
10 //
11 //===----------------------------------------------------------------------===//
12 
15 
16 using namespace clang;
17 using namespace ento;
18 
20 
21 StringRef CheckerBase::getTagDescription() const {
22  return getCheckName().getName();
23 }
24 
25 CheckName CheckerBase::getCheckName() const { return Name; }
26 
28  StringRef Msg)
29  : SimpleProgramPointTag(CheckerName, Msg) {}
30 
32  StringRef Msg)
33  : SimpleProgramPointTag(Checker->getCheckName().getName(), Msg) {}
34 
35 raw_ostream& clang::ento::operator<<(raw_ostream &Out,
36  const CheckerBase &Checker) {
37  Out << Checker.getCheckName().getName();
38  return Out;
39 }
CheckName getCheckName() const
Definition: Checker.cpp:25
std::string getName(ArrayRef< StringRef > Parts) const
Get the platform-specific name separator.
StringRef getTagDescription() const override
Definition: Checker.cpp:21
StringRef getName() const
CheckerProgramPointTag(StringRef CheckerName, StringRef Msg)
Definition: Checker.cpp:27
Dataflow Directional Tag Classes.
raw_ostream & operator<<(raw_ostream &Out, const CheckerBase &Checker)
Dump checker name to stream.
Definition: Checker.cpp:35