after changing GCC version 3.0 to 4.1 i am getting invalid lvalue in increment error
#include <vscreen.h>
#include "vscreen_internal.h"
extern UDINT colPalette[256];
void  memset_f(void *p,USINT value, UDINT len)
{
    register    UDINT longValue = colPalette[value];
    while(len)
    {
        if ( ((UDINT)p&3) == 0 )   /* even address*/
        {
            if (len > 32) /*and more than 32 bytes to fill */
            {
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                *((UDINT*)p)++ = longValue;        /* lvalue in increment error*/
                len-=32;
                continue;
            }
        }   
        *(USINT*)p++ = (USINT)longValue;         /* lvalue in increment error*/
         len--;
    }
}
#endif