Peter, I only see a bug that was there after 5560 and has been solved again in 3.0.1. There is no conversion from integer to pointer without cast in this line:
invalid_ip[0] = IINCHIP_READ(UIPR0+1); So there should be no warning. Maarten > I'm not sure if this is a bug or just questionable coding, so I'll > ask here before reporting it as a bug. I'm trying to figure out why someone > elses code tha works on snaps less than 5559 but not after 5560 is broken (so > far without success :-)). While poking at that I came across this change where > the same code sometimes gets a warning and sometimes doesn't: > > $ cat test4.c > #include <w7100.h> > > typedef unsigned char uint8; > typedef volatile unsigned char vuint8; > > #define COMMON_BASE 0x0000 > #define UIPR0 ((volatile __xdata uint8 *)(COMMON_BASE + 0x002A)) > > > // required for IINCHIP_WRITE and IINCHIP_READ port for SDCC to > // avoid compiler use of non mapped memory access while banking > > static __data uint8 w_d; > > uint8 IINCHIP_READ(__xdata vuint8 *addr) __reentrant __critical > { > w_d = *((__xdata vuint8 *)(addr)); > return w_d; > } > > main() > { > static __xdata uint8 invalid_ip[4]; > > invalid_ip[0] = IINCHIP_READ(UIPR0+1); > return (0); > } > > This compiler is snap 5559 compiled from source > > pe...@pc700 ~/wiznet/nos_test > $ sdcc -v > SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.4 > # > (Dec 31 2010) (CYGWIN) > > pe...@pc700 ~/wiznet/nos_test > $ /usr/local//bin/sdcc -c test4.c > > pe...@pc700 ~/wiznet/nos_test > $ > > Note it doesn't complain about the conversion without a cast in the line > > invalid_ip[0] = IINCHIP_READ(UIPR0+1); > > where UIPR0 is in fact a pointer to an unsigned char and thus is doing pointer > arithmatic (nor am I a good enough C coder to know if it should be complaining > or not :-)). > > nor does a recent 3_0_1 > snapshot > > pe...@pc700 ~/wiznet/nos_test > $ "/cygdrive/c/program files/SDCC3_0_1"/bin/sdcc -v > SDCC : mcs51/gbz80/z80/ds390/pic16/pic14/TININative/ds400/hc08 3.0.1 #6066 > (Nov > 26 2010) (MINGW32) > > pe...@pc700 ~/wiznet/nos_test > $ "/cygdrive/c/program files/SDCC3_0_1"/bin/sdcc test4.c > > pe...@pc700 ~/wiznet/nos_test > > but snap 5560 (and I think some later ones, I've been binary searching for the > failure point through previous snaps :-)) issues a warning about the lack of > a cast. > > This compiler is snap 5560 compiled from source (which also breaks the full > code > for reasons as yet unknown) which does complain about the lack of a cast. > > pe...@pc700 ~/wiznet/nos_test > $ /usr/local//bin/sdcc -c test4.c > test4.c:25: warning 154: converting integral to pointer without a cast > from type 'const-unsigned-char literal' > to type 'volatile-unsigned-char xdata* auto' > > pe...@pc700 ~/wiznet/nos_test > $ sdcc -v > SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.4 > # > (Dec 30 2010) (CYGWIN) > > Comments on a reportable bug or operator error in the form of poor > coding practice (the original code from Wiznet that this is based on is full > of poor coding practices :-))? > > Peter Van Epp > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node allows customers > to consolidate database storage, standardize their database environment, and, > should the need arise, upgrade to a full multi-node Oracle RAC database > without downtime or disruption > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > Sdcc-user mailing list > Sdcc-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sdcc-user > ------------------------------------------------------------------------------ Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user