003 File Manager
Current Path:
/usr/src/contrib/llvm-project/clang/lib/Frontend
usr
/
src
/
contrib
/
llvm-project
/
clang
/
lib
/
Frontend
/
📁
..
📄
ASTConsumers.cpp
(6.91 KB)
📄
ASTMerge.cpp
(4.21 KB)
📄
ASTUnit.cpp
(96.12 KB)
📄
ChainedDiagnosticConsumer.cpp
(494 B)
📄
ChainedIncludesSource.cpp
(8.64 KB)
📄
CompilerInstance.cpp
(85 KB)
📄
CompilerInvocation.cpp
(163.55 KB)
📄
CreateInvocationFromCommandLine.cpp
(3.72 KB)
📄
DependencyFile.cpp
(14.18 KB)
📄
DependencyGraph.cpp
(4.29 KB)
📄
DiagnosticRenderer.cpp
(23.59 KB)
📄
FrontendAction.cpp
(41.79 KB)
📄
FrontendActions.cpp
(35.13 KB)
📄
FrontendOptions.cpp
(1.54 KB)
📄
FrontendTiming.cpp
(610 B)
📄
HeaderIncludeGen.cpp
(6.52 KB)
📄
InitHeaderSearch.cpp
(24.31 KB)
📄
InitPreprocessor.cpp
(51.21 KB)
📄
InterfaceStubFunctionsConsumer.cpp
(12.33 KB)
📄
LayoutOverrideSource.cpp
(6.13 KB)
📄
LogDiagnosticPrinter.cpp
(5.15 KB)
📄
ModuleDependencyCollector.cpp
(9.11 KB)
📄
MultiplexConsumer.cpp
(14.03 KB)
📄
PrecompiledPreamble.cpp
(31.65 KB)
📄
PrintPreprocessedOutput.cpp
(32.34 KB)
📁
Rewrite
📄
SerializedDiagnosticPrinter.cpp
(31.77 KB)
📄
SerializedDiagnosticReader.cpp
(11.53 KB)
📄
TestModuleFileExtension.cpp
(4.38 KB)
📄
TestModuleFileExtension.h
(2.34 KB)
📄
TextDiagnostic.cpp
(48.96 KB)
📄
TextDiagnosticBuffer.cpp
(2.59 KB)
📄
TextDiagnosticPrinter.cpp
(6.09 KB)
📄
VerifyDiagnosticConsumer.cpp
(39.3 KB)
Editing: TextDiagnosticBuffer.cpp
//===- TextDiagnosticBuffer.cpp - Buffer Text Diagnostics -----------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This is a concrete diagnostic client, which buffers the diagnostic messages. // //===----------------------------------------------------------------------===// #include "clang/Frontend/TextDiagnosticBuffer.h" #include "clang/Basic/Diagnostic.h" #include "clang/Basic/LLVM.h" #include "llvm/ADT/SmallString.h" #include "llvm/Support/ErrorHandling.h" using namespace clang; /// HandleDiagnostic - Store the errors, warnings, and notes that are /// reported. void TextDiagnosticBuffer::HandleDiagnostic(DiagnosticsEngine::Level Level, const Diagnostic &Info) { // Default implementation (Warnings/errors count). DiagnosticConsumer::HandleDiagnostic(Level, Info); SmallString<100> Buf; Info.FormatDiagnostic(Buf); switch (Level) { default: llvm_unreachable( "Diagnostic not handled during diagnostic buffering!"); case DiagnosticsEngine::Note: All.emplace_back(Level, Notes.size()); Notes.emplace_back(Info.getLocation(), std::string(Buf.str())); break; case DiagnosticsEngine::Warning: All.emplace_back(Level, Warnings.size()); Warnings.emplace_back(Info.getLocation(), std::string(Buf.str())); break; case DiagnosticsEngine::Remark: All.emplace_back(Level, Remarks.size()); Remarks.emplace_back(Info.getLocation(), std::string(Buf.str())); break; case DiagnosticsEngine::Error: case DiagnosticsEngine::Fatal: All.emplace_back(Level, Errors.size()); Errors.emplace_back(Info.getLocation(), std::string(Buf.str())); break; } } void TextDiagnosticBuffer::FlushDiagnostics(DiagnosticsEngine &Diags) const { for (const auto &I : All) { auto Diag = Diags.Report(Diags.getCustomDiagID(I.first, "%0")); switch (I.first) { default: llvm_unreachable( "Diagnostic not handled during diagnostic flushing!"); case DiagnosticsEngine::Note: Diag << Notes[I.second].second; break; case DiagnosticsEngine::Warning: Diag << Warnings[I.second].second; break; case DiagnosticsEngine::Remark: Diag << Remarks[I.second].second; break; case DiagnosticsEngine::Error: case DiagnosticsEngine::Fatal: Diag << Errors[I.second].second; break; } } }
Upload File
Create Folder