From: SourceForge.net <no...@so...> - 2006-02-28 18:54:41
|
Bugs item #1440527, was opened at 2006-02-28 19:54 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1440527&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: pic16 target Group: None Status: Open Resolution: None Priority: 5 Submitted By: Borut Razem (borutr) Assigned to: Nobody/Anonymous (nobody) Summary: bad pic16 code generated for constant pointer Initial Comment: 1 - sample code: ------------------------------------- void func(unsigned char a) { a; } void main(void) { unsigned char c=*((unsigned char*)(0xa000)); func(c); } ------------------------------------- 2 - sdcc command: sdcc -mpic16 -S t.c 3 - sdcc version: >sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.5.4 #1212 (Feb 19 2006) (MINGW32) 4 - bad code generated: ------------------------------------- S_t2__main code _main: ; .line 8; t2.c main(void) MOVFF r0x00, POSTDEC1 ; .line 11; t2.c unsigned char c=*((unsigned char*)(0xa000)); MOVFF x«l, FSR0L <== bad code MOVFF 8¬l, PRODL <== bad code MOVF 0x00, W CALL __gptrget1 MOVWF r0x00 ; .line 13; t2.c func(c); MOVF r0x00, W MOVWF POSTDEC1 CALL _func INCF FSR1L, F MOVFF PREINC1, r0x00 RETURN ------------------------------------- This is actually a minimized version of the regression test bug-460010.c Borut ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1440527&group_id=599 |