LCOV - code coverage report
Current view: top level - include/llvm/IR - DiagnosticPrinter.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 2 3 66.7 %
Date: 2018-10-20 13:21:21 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- llvm/Support/DiagnosticPrinter.h - Diagnostic Printer ----*- 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 declares the main interface for printer backend diagnostic.
      11             : //
      12             : // Clients of the backend diagnostics should overload this interface based
      13             : // on their needs.
      14             : //===----------------------------------------------------------------------===//
      15             : 
      16             : #ifndef LLVM_IR_DIAGNOSTICPRINTER_H
      17             : #define LLVM_IR_DIAGNOSTICPRINTER_H
      18             : 
      19             : #include <string>
      20             : 
      21             : namespace llvm {
      22             : 
      23             : // Forward declarations.
      24             : class Module;
      25             : class raw_ostream;
      26             : class SMDiagnostic;
      27             : class StringRef;
      28             : class Twine;
      29             : class Value;
      30             : 
      31             : /// Interface for custom diagnostic printing.
      32             : class DiagnosticPrinter {
      33             : public:
      34           0 :   virtual ~DiagnosticPrinter() = default;
      35             : 
      36             :   // Simple types.
      37             :   virtual DiagnosticPrinter &operator<<(char C) = 0;
      38             :   virtual DiagnosticPrinter &operator<<(unsigned char C) = 0;
      39             :   virtual DiagnosticPrinter &operator<<(signed char C) = 0;
      40             :   virtual DiagnosticPrinter &operator<<(StringRef Str) = 0;
      41             :   virtual DiagnosticPrinter &operator<<(const char *Str) = 0;
      42             :   virtual DiagnosticPrinter &operator<<(const std::string &Str) = 0;
      43             :   virtual DiagnosticPrinter &operator<<(unsigned long N) = 0;
      44             :   virtual DiagnosticPrinter &operator<<(long N) = 0;
      45             :   virtual DiagnosticPrinter &operator<<(unsigned long long N) = 0;
      46             :   virtual DiagnosticPrinter &operator<<(long long N) = 0;
      47             :   virtual DiagnosticPrinter &operator<<(const void *P) = 0;
      48             :   virtual DiagnosticPrinter &operator<<(unsigned int N) = 0;
      49             :   virtual DiagnosticPrinter &operator<<(int N) = 0;
      50             :   virtual DiagnosticPrinter &operator<<(double N) = 0;
      51             :   virtual DiagnosticPrinter &operator<<(const Twine &Str) = 0;
      52             : 
      53             :   // IR related types.
      54             :   virtual DiagnosticPrinter &operator<<(const Value &V) = 0;
      55             :   virtual DiagnosticPrinter &operator<<(const Module &M) = 0;
      56             : 
      57             :   // Other types.
      58             :   virtual DiagnosticPrinter &operator<<(const SMDiagnostic &Diag) = 0;
      59             : };
      60             : 
      61             : /// Basic diagnostic printer that uses an underlying raw_ostream.
      62          14 : class DiagnosticPrinterRawOStream : public DiagnosticPrinter {
      63             : protected:
      64             :   raw_ostream &Stream;
      65             : 
      66             : public:
      67        1971 :   DiagnosticPrinterRawOStream(raw_ostream &Stream) : Stream(Stream) {}
      68             : 
      69             :   // Simple types.
      70             :   DiagnosticPrinter &operator<<(char C) override;
      71             :   DiagnosticPrinter &operator<<(unsigned char C) override;
      72             :   DiagnosticPrinter &operator<<(signed char C) override;
      73             :   DiagnosticPrinter &operator<<(StringRef Str) override;
      74             :   DiagnosticPrinter &operator<<(const char *Str) override;
      75             :   DiagnosticPrinter &operator<<(const std::string &Str) override;
      76             :   DiagnosticPrinter &operator<<(unsigned long N) override;
      77             :   DiagnosticPrinter &operator<<(long N) override;
      78             :   DiagnosticPrinter &operator<<(unsigned long long N) override;
      79             :   DiagnosticPrinter &operator<<(long long N) override;
      80             :   DiagnosticPrinter &operator<<(const void *P) override;
      81             :   DiagnosticPrinter &operator<<(unsigned int N) override;
      82             :   DiagnosticPrinter &operator<<(int N) override;
      83             :   DiagnosticPrinter &operator<<(double N) override;
      84             :   DiagnosticPrinter &operator<<(const Twine &Str) override;
      85             : 
      86             :   // IR related types.
      87             :   DiagnosticPrinter &operator<<(const Value &V) override;
      88             :   DiagnosticPrinter &operator<<(const Module &M) override;
      89             : 
      90             :   // Other types.
      91             :   DiagnosticPrinter &operator<<(const SMDiagnostic &Diag) override;
      92             : };
      93             : 
      94             : } // end namespace llvm
      95             : 
      96             : #endif // LLVM_IR_DIAGNOSTICPRINTER_H

Generated by: LCOV version 1.13