summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/compiler/translator/Diagnostics.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/Diagnostics.h')
-rw-r--r--src/3rdparty/angle/src/compiler/translator/Diagnostics.h46
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_