From: SourceForge.net <no...@so...> - 2008-01-22 17:37:01
|
Bugs item #1877523, was opened at 2008-01-22 11:36 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=1877523&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: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Luke Weerts (weerts) Assigned to: Nobody/Anonymous (nobody) Summary: multiple operators - same line of code - unexpected results Initial Comment: "C:\Program Files\SDCC\bin\sdcc.exe" SPIFlash.c -c -mpic16 -p18F452 --obanksel=2 --optimize-cmp --optimize-goto --optimize-df -dD SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.7.0 #4818 (May 31 2007) (MINGW32) lu...@ta... Optimization is on (see command line above) using pic16 The two sections below should work the same. Section One Always Works as expected. Section Two Works as expected except if length is 1, thereby making --length zero. if length is 1, bitmap ends up as 0x00000000, expected is 0xFFFFFFFE This code converts a string length to a double word bit map with each bit representing 8 bytes of a 256 byte buffer void main() { unsigned long bitmap; unsigned char length; bitmap = 0xFFFFFFFF; //Section one --length; length >>=3; ++length; bitmap <<= length; bitmap = 0xFFFFFFFF; //Section two --length >>=3; bitmap <<= ++length; } ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1877523&group_id=599 |