In the attached C file the second line of USB_send_data
causes len to be cast to a 16 bit word and that word is
in _USB_send_data_sloc1_1_0 .
It's later used by the printf function for it's len
The problem is that len (mapped to _USB_send_data_PARM_3)
is changed in between and an old value is used by printf.
Sorry about the complicated test case but it seems very
on the number of variables allocated (or something),
and as soon as
I remove something the problem goes away.
Compiled with: sdcc -mmcs51 -S fail.c
2.4.0 (Dec 15 2004) (UNIX)
Log in to post a comment.