LogDiagnosticPrinter.h (276479) | LogDiagnosticPrinter.h (280031) |
---|---|
1//===--- LogDiagnosticPrinter.h - Log Diagnostic Client ---------*- 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 | 1//===--- LogDiagnosticPrinter.h - Log Diagnostic Client ---------*- 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#ifndef LLVM_CLANG_FRONTEND_LOG_DIAGNOSTIC_PRINTER_H_ 11#define LLVM_CLANG_FRONTEND_LOG_DIAGNOSTIC_PRINTER_H_ | 10#ifndef LLVM_CLANG_FRONTEND_LOGDIAGNOSTICPRINTER_H 11#define LLVM_CLANG_FRONTEND_LOGDIAGNOSTICPRINTER_H |
12 13#include "clang/Basic/Diagnostic.h" 14#include "clang/Basic/SourceLocation.h" 15#include "llvm/ADT/SmallVector.h" 16#include "llvm/ADT/StringRef.h" 17 18namespace clang { 19class DiagnosticOptions; --- 10 unchanged lines hidden (view full) --- 30 /// The source file line number, if available. 31 unsigned Line; 32 33 /// The source file column number, if available. 34 unsigned Column; 35 36 /// The ID of the diagnostic. 37 unsigned DiagnosticID; | 12 13#include "clang/Basic/Diagnostic.h" 14#include "clang/Basic/SourceLocation.h" 15#include "llvm/ADT/SmallVector.h" 16#include "llvm/ADT/StringRef.h" 17 18namespace clang { 19class DiagnosticOptions; --- 10 unchanged lines hidden (view full) --- 30 /// The source file line number, if available. 31 unsigned Line; 32 33 /// The source file column number, if available. 34 unsigned Column; 35 36 /// The ID of the diagnostic. 37 unsigned DiagnosticID; |
38 39 /// The Option Flag for the diagnostic 40 std::string WarningOption; |
|
38 39 /// The level of the diagnostic. 40 DiagnosticsEngine::Level DiagnosticLevel; 41 }; 42 43 void EmitDiagEntry(llvm::raw_ostream &OS, 44 const LogDiagnosticPrinter::DiagEntry &DE); 45 | 41 42 /// The level of the diagnostic. 43 DiagnosticsEngine::Level DiagnosticLevel; 44 }; 45 46 void EmitDiagEntry(llvm::raw_ostream &OS, 47 const LogDiagnosticPrinter::DiagEntry &DE); 48 |
49 // Conditional ownership (when StreamOwner is non-null, it's keeping OS 50 // alive). We might want to replace this with a wrapper for conditional 51 // ownership eventually - it seems to pop up often enough. |
|
46 raw_ostream &OS; | 52 raw_ostream &OS; |
53 std::unique_ptr<raw_ostream> StreamOwner; |
|
47 const LangOptions *LangOpts; 48 IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; 49 50 SourceLocation LastWarningLoc; 51 FullSourceLoc LastLoc; | 54 const LangOptions *LangOpts; 55 IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts; 56 57 SourceLocation LastWarningLoc; 58 FullSourceLoc LastLoc; |
52 unsigned OwnsOutputStream : 1; | |
53 54 SmallVector<DiagEntry, 8> Entries; 55 56 std::string MainFilename; 57 std::string DwarfDebugFlags; 58 59public: 60 LogDiagnosticPrinter(raw_ostream &OS, DiagnosticOptions *Diags, | 59 60 SmallVector<DiagEntry, 8> Entries; 61 62 std::string MainFilename; 63 std::string DwarfDebugFlags; 64 65public: 66 LogDiagnosticPrinter(raw_ostream &OS, DiagnosticOptions *Diags, |
61 bool OwnsOutputStream = false); 62 virtual ~LogDiagnosticPrinter(); | 67 std::unique_ptr<raw_ostream> StreamOwner); |
63 64 void setDwarfDebugFlags(StringRef Value) { 65 DwarfDebugFlags = Value; 66 } 67 68 void BeginSourceFile(const LangOptions &LO, const Preprocessor *PP) override { 69 LangOpts = &LO; 70 } 71 72 void EndSourceFile() override; 73 74 void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, 75 const Diagnostic &Info) override; 76}; 77 78} // end namespace clang 79 80#endif | 68 69 void setDwarfDebugFlags(StringRef Value) { 70 DwarfDebugFlags = Value; 71 } 72 73 void BeginSourceFile(const LangOptions &LO, const Preprocessor *PP) override { 74 LangOpts = &LO; 75 } 76 77 void EndSourceFile() override; 78 79 void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, 80 const Diagnostic &Info) override; 81}; 82 83} // end namespace clang 84 85#endif |