Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/IR/DiagnosticPrinter.cpp
35233 views
1
//===- llvm/IR/DiagnosticPrinter.cpp - Diagnostic Printer -------*- 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 a diagnostic printer relying on raw_ostream.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#include "llvm/IR/DiagnosticPrinter.h"
14
#include "llvm/ADT/Twine.h"
15
#include "llvm/IR/Module.h"
16
#include "llvm/IR/Value.h"
17
#include "llvm/Support/SourceMgr.h"
18
#include "llvm/Support/raw_ostream.h"
19
20
using namespace llvm;
21
22
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(char C) {
23
Stream << C;
24
return *this;
25
}
26
27
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(unsigned char C) {
28
Stream << C;
29
return *this;
30
}
31
32
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(signed char C) {
33
Stream << C;
34
return *this;
35
}
36
37
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(StringRef Str) {
38
Stream << Str;
39
return *this;
40
}
41
42
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const char *Str) {
43
Stream << Str;
44
return *this;
45
}
46
47
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(
48
const std::string &Str) {
49
Stream << Str;
50
return *this;
51
}
52
53
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(unsigned long N) {
54
Stream << N;
55
return *this;
56
}
57
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(long N) {
58
Stream << N;
59
return *this;
60
}
61
62
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(
63
unsigned long long N) {
64
Stream << N;
65
return *this;
66
}
67
68
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(long long N) {
69
Stream << N;
70
return *this;
71
}
72
73
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const void *P) {
74
Stream << P;
75
return *this;
76
}
77
78
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(unsigned int N) {
79
Stream << N;
80
return *this;
81
}
82
83
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(int N) {
84
Stream << N;
85
return *this;
86
}
87
88
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(double N) {
89
Stream << N;
90
return *this;
91
}
92
93
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const Twine &Str) {
94
Str.print(Stream);
95
return *this;
96
}
97
98
// IR related types.
99
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const Value &V) {
100
Stream << V.getName();
101
return *this;
102
}
103
104
DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const Module &M) {
105
Stream << M.getModuleIdentifier();
106
return *this;
107
}
108
109
// Other types.
110
DiagnosticPrinter &DiagnosticPrinterRawOStream::
111
operator<<(const SMDiagnostic &Diag) {
112
// We don't have to print the SMDiagnostic kind, as the diagnostic severity
113
// is printed by the diagnostic handler.
114
Diag.print("", Stream, /*ShowColors=*/true, /*ShowKindLabel=*/false);
115
return *this;
116
}
117
118