diff options
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/Diagnostics.h')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/Diagnostics.h | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/Diagnostics.h b/src/3rdparty/angle/src/compiler/translator/Diagnostics.h index bc26e4584f..55b88991df 100644 --- a/src/3rdparty/angle/src/compiler/translator/Diagnostics.h +++ b/src/3rdparty/angle/src/compiler/translator/Diagnostics.h @@ -9,33 +9,59 @@ #include "common/angleutils.h" #include "compiler/preprocessor/DiagnosticsBase.h" +#include "compiler/translator/Severity.h" -class TInfoSink; +namespace sh +{ + +class TInfoSinkBase; +struct TSourceLoc; class TDiagnostics : public pp::Diagnostics, angle::NonCopyable { public: - TDiagnostics(TInfoSink& infoSink); + TDiagnostics(TInfoSinkBase &infoSink); ~TDiagnostics() override; - TInfoSink& infoSink() { return mInfoSink; } - int numErrors() const { return mNumErrors; } int numWarnings() const { return mNumWarnings; } - void writeInfo(Severity severity, - const pp::SourceLocation& loc, - const std::string& reason, - const std::string& token, - const std::string& extra); + void error(const pp::SourceLocation &loc, const char *reason, const char *token); + void warning(const pp::SourceLocation &loc, const char *reason, const char *token); + + void error(const TSourceLoc &loc, const char *reason, const char *token); + void warning(const TSourceLoc &loc, const char *reason, const char *token); + + void globalError(const char *message); + + void resetErrorCount(); protected: + void writeInfo(Severity severity, + const pp::SourceLocation &loc, + const char *reason, + const char *token); + void print(ID id, const pp::SourceLocation &loc, const std::string &text) override; private: - TInfoSink& mInfoSink; + TInfoSinkBase &mInfoSink; int mNumErrors; int mNumWarnings; }; +// Diagnostics wrapper to use when the code is only allowed to generate warnings. +class PerformanceDiagnostics : public angle::NonCopyable +{ + public: + PerformanceDiagnostics(TDiagnostics *diagnostics); + + void warning(const TSourceLoc &loc, const char *reason, const char *token); + + private: + TDiagnostics *mDiagnostics; +}; + +} // namespace sh + #endif // COMPILER_TRANSLATOR_DIAGNOSTICS_H_ |