Moved error-counting to Diagnostics so that errors generated during preprocessing is included in the count.
Enabled logging of preprocessor diagnostics into info-log.
Review URL: https://codereview.appspot.com/6354047

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1177 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/Diagnostics.cpp b/src/compiler/Diagnostics.cpp
index 5f93a03..8aa1cb6 100644
--- a/src/compiler/Diagnostics.cpp
+++ b/src/compiler/Diagnostics.cpp
@@ -6,10 +6,14 @@
 
 #include "compiler/Diagnostics.h"
 
+#include "compiler/debug.h"
 #include "compiler/InfoSink.h"
 #include "compiler/preprocessor/new/SourceLocation.h"
 
-TDiagnostics::TDiagnostics(TInfoSink& infoSink) : mInfoSink(infoSink)
+TDiagnostics::TDiagnostics(TInfoSink& infoSink) :
+    mInfoSink(infoSink),
+    mNumErrors(0),
+    mNumWarnings(0)
 {
 }
 
@@ -23,9 +27,23 @@
                              const std::string& token,
                              const std::string& extra)
 {
-    TInfoSinkBase& sink = mInfoSink.info;
-    TPrefixType prefix = severity == ERROR ? EPrefixError : EPrefixWarning;
+    TPrefixType prefix = EPrefixNone;
+    switch (severity)
+    {
+      case ERROR:
+        ++mNumErrors;
+        prefix = EPrefixError;
+        break;
+      case WARNING:
+        ++mNumWarnings;
+        prefix = EPrefixWarning;
+        break;
+      default:
+        UNREACHABLE();
+        break;
+    }
 
+    TInfoSinkBase& sink = mInfoSink.info;
     /* VC++ format: file(linenum) : error #: 'token' : extrainfo */
     sink.prefix(prefix);
     sink.location(EncodeSourceLoc(loc.file, loc.line));
@@ -41,4 +59,5 @@
                          const pp::SourceLocation& loc,
                          const std::string& text)
 {
+    writeInfo(severity(id), loc, message(id), text, "");
 }