* src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
authormaartenbrock <maartenbrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 9 Sep 2004 16:44:26 +0000 (16:44 +0000)
committermaartenbrock <maartenbrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 9 Sep 2004 16:44:26 +0000 (16:44 +0000)
  geniCodePreDec): Fixed bug 904237 by generating a warning
* src/SDCCerr.h,
* src/SDCCerr.c: added warning W_SIZEOF_VOID

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3486 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCicode.c
support/Util/SDCCerr.c
support/Util/SDCCerr.h

index 40a90d5dddb9d6e9e4be2b98013965ce27080f77..c8c59d5bc173dc82107c9e53b8c5f3e0188c027d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
+         geniCodePreDec): Fixed bug 904237 by generating a warning
+       * src/SDCCerr.h,
+       * src/SDCCerr.c: added warning W_SIZEOF_VOID
+
 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
 
        * src/pic/device.c : When no max ram set validate full memory range.
index c024091a67f105c2a90d3aa5c7c956126e5b6975..01bf6e6c232326da5db0bf8c6b5af430f9fc9256 100644 (file)
@@ -2495,6 +2495,8 @@ geniCodePostInc (operand * op)
   geniCodeAssign (rOp, rv, 0, 0);
 
   size = (IS_PTR (rvtype) ? getSize (rvtype->next) : 1);
+  if (size == 0)
+    werror(W_SIZEOF_VOID);
   if (IS_FLOAT (rvtype))
     ic = newiCode ('+', rv, operandFromValue (constFloatVal ("1.0")));
   else
@@ -2530,8 +2532,9 @@ geniCodePreInc (operand * op, bool lvalue)
       return op;
     }
 
-
   size = (IS_PTR (roptype) ? getSize (roptype->next) : 1);
+  if (size == 0)
+    werror(W_SIZEOF_VOID);
   if (IS_FLOAT (roptype))
     ic = newiCode ('+', rop, operandFromValue (constFloatVal ("1.0")));
   else
@@ -2578,6 +2581,8 @@ geniCodePostDec (operand * op)
   geniCodeAssign (rOp, rv, 0, 0);
 
   size = (IS_PTR (rvtype) ? getSize (rvtype->next) : 1);
+  if (size == 0)
+    werror(W_SIZEOF_VOID);
   if (IS_FLOAT (rvtype))
     ic = newiCode ('-', rv, operandFromValue (constFloatVal ("1.0")));
   else
@@ -2613,8 +2618,9 @@ geniCodePreDec (operand * op, bool lvalue)
       return op;
     }
 
-
   size = (IS_PTR (roptype) ? getSize (roptype->next) : 1);
+  if (size == 0)
+    werror(W_SIZEOF_VOID);
   if (IS_FLOAT (roptype))
     ic = newiCode ('-', rop, operandFromValue (constFloatVal ("1.0")));
   else
index 43391455abb6e17d5df1f643ff179842f8948c43..cc3e98a4279a5b461b149e43bbce40f860f47192 100644 (file)
@@ -412,6 +412,8 @@ struct
    "sizeof applied to an incomplete type" },
 { E_PREVIOUS_DEF, ERROR_LEVEL_ERROR,
    "previously defined here" },
+{ W_SIZEOF_VOID, ERROR_LEVEL_WARNING,
+   "size of void is zero" },
 };
 
 /*
index 7a9fe583e66e3ccbcf25320e594138c64f445fbc..1233f5a824c32632a85dcf4b91463122a86df3ba 100644 (file)
@@ -193,6 +193,7 @@ SDCCERR - SDCC Standard error handler
 #define W_DEPRECATED_PRAGMA           175 /* deprecated pragma */
 #define E_SIZEOF_INCOMPLETE_TYPE      176 /* sizeof applied to an incomplete type */
 #define E_PREVIOUS_DEF                177 /* previously defined here */
+#define W_SIZEOF_VOID                 178 /* size of void is zero */
 
 #define MAX_ERROR_WARNING             256 /* size of disable warnings array */