Hi, All!
Here is a little chunk of code.

/* --------------- */
void some_func(void * gptr) {
        *((char *)gptr++) = 'A';
}
/* --------------- */

[EMAIL PROTECTED] sdcc-ptr++]$ uname -o
GNU/Linux
[EMAIL PROTECTED] sdcc-ptr++]$ sdcc -mmcs51 -c --std-sdcc99 sdcc-ptr++-test.c
sdcc-ptr++-test.c:2: warning 178: size of void is zero
[EMAIL PROTECTED] sdcc-ptr++]$ c99 -c sdcc-ptr++-test.c
[EMAIL PROTECTED] sdcc-ptr++]$

It's looks like a bug, because gcc compiles it well. Code is not generated
for increment:
;------------------------------------------------------------
;Allocation info for local variables in function 'some_proc'
;------------------------------------------------------------
;gptr                      Allocated to registers r2 r3 r4
;------------------------------------------------------------
;sdcc-ptr++-test.c:1: void some_proc(void * gptr) {
;       -----------------------------------------
;        function some_proc
;       -----------------------------------------
_some_proc:
        ar2 = 0x02
        ar3 = 0x03
        ar4 = 0x04
        ar5 = 0x05
        ar6 = 0x06
        ar7 = 0x07
        ar0 = 0x00
        ar1 = 0x01
;     genReceive
;sdcc-ptr++-test.c:2: *((char *)gptr++) = 'A';
;     genPointerSet
;     genGenPointerSet
        mov     r2,dpl
        mov     r3,dph
        mov     r4,b
;       Peephole 238.d  removed 3 redundant moves
        mov     a,#0x41
;       Peephole 253.b  replaced lcall/ret with ljmp
        ljmp    __gptrput
        .area CSEG    (CODE)
        .area XINIT   (CODE)

Thank you!

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to