]> git.gag.com Git - fw/sdcc/blobdiff - src/SDCCerr.c
* src/SDCCerr.c (vwerror, setWError),
[fw/sdcc] / src / SDCCerr.c
index a20917f0b6c73e28e20e813274afdd582cf56a82..610f95080d95a4ac62f0efcea3035eb7996f96e6 100644 (file)
@@ -484,7 +484,7 @@ void vwerror (int errNum, va_list marker)
     }
 
     if ((ErrTab[errNum].errType >= _SDCCERRG.logLevel) && (!_SDCCERRG.disabled[errNum])) {
-        if ( ErrTab[errNum].errType == ERROR_LEVEL_ERROR )
+        if ( ErrTab[errNum].errType == ERROR_LEVEL_ERROR || _SDCCERRG.werror )
             fatalError++ ;
   
         if ( filename && lineno ) {
@@ -505,7 +505,10 @@ void vwerror (int errNum, va_list marker)
                 break;
             case ERROR_LEVEL_WARNING:
             case ERROR_LEVEL_PEDANTIC:
-                fprintf(_SDCCERRG.out, "warning %d: ", errNum);
+                if (_SDCCERRG.werror)
+                    fprintf(_SDCCERRG.out, "error %d: ", errNum);
+                else
+                    fprintf(_SDCCERRG.out, "warning %d: ", errNum);
                 break;
             case ERROR_LEVEL_INFO:
                 fprintf(_SDCCERRG.out, "info %d: ", errNum);
@@ -599,3 +602,14 @@ void setWarningDisabled (int errNum)
     if ((errNum < MAX_ERROR_WARNING) && (ErrTab[errNum].errType <= ERROR_LEVEL_WARNING))
         _SDCCERRG.disabled[errNum] = 1;
 }
+
+/*
+-------------------------------------------------------------------------------
+Set the flag to treat warnings as errors
+-------------------------------------------------------------------------------
+*/
+
+void setWError (int flag)
+{
+    _SDCCERRG.werror = flag;
+}