From: SourceForge.net <no...@so...> - 2004-07-01 17:13:17
|
Bugs item #983545, was opened at 2004-07-01 19:13 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=983545&group_id=599 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Josef Pavlik (jetset) Assigned to: Nobody/Anonymous (nobody) Summary: global variable load error Initial Comment: hi all, compiling the following program, the load of the variable stdout is moved outside the loop, so when the function returns, the content of stdout is 1 instead of 0 try to compile it with --model-small sdcc --version SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.4.2 (Jun 27 2004) (UNIX) --------------------- #include "8051.h" #include <stdio.h> data unsigned char stdout=0; void putchar(char x) {} volatile unsigned char ch; void main(void) { while (1) { stdout=1; printf("x"); stdout=0; // this load is moved before the loop if (ch=='Z') return; } } ------------------- _main: ;bg.c:8: while (1) ; genAssign mov _stdout,#0x00 00104$: ;bg.c:10: stdout=1; ; genAssign mov _stdout,#0x01 ;bg.c:11: printf("x"); ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=983545&group_id=599 |
From: SourceForge.net <no...@so...> - 2004-08-03 13:05:14
|
Bugs item #983545, was opened at 2004-07-01 19:13 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=983545&group_id=599 Category: None >Group: fixed >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Josef Pavlik (jetset) >Assigned to: Maarten Brock (maartenbrock) Summary: global variable load error Initial Comment: hi all, compiling the following program, the load of the variable stdout is moved outside the loop, so when the function returns, the content of stdout is 1 instead of 0 try to compile it with --model-small sdcc --version SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.4.2 (Jun 27 2004) (UNIX) --------------------- #include "8051.h" #include <stdio.h> data unsigned char stdout=0; void putchar(char x) {} volatile unsigned char ch; void main(void) { while (1) { stdout=1; printf("x"); stdout=0; // this load is moved before the loop if (ch=='Z') return; } } ------------------- _main: ;bg.c:8: while (1) ; genAssign mov _stdout,#0x00 00104$: ;bg.c:10: stdout=1; ; genAssign mov _stdout,#0x01 ;bg.c:11: printf("x"); ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2004-08-03 15:05 Message: Logged In: YES user_id=888171 Fixed in SDCCloop.c 1.42 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=983545&group_id=599 |