From: SourceForge.net <no...@so...> - 2007-12-22 15:20:11
|
Bugs item #1856409, was opened at 2007-12-22 16:20 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=1856409&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: Laszlo BORTEL (bortel) Assigned to: Nobody/Anonymous (nobody) Summary: bitfield initialiser overflows in code memory Initial Comment: When a bitfield initialiser is greater than the maximum allowed value for a given number of bits the compiler gives "warning 158: overflow in implicit constant conversion", and the generated initialiser code restricts the value into the allocated bits. It is OK so far. On the other hand when the initialised structure with bit fields is not in the data, but in the code memory the value overflows into the next bit field and no warning is given. I would expect the same behaviour in both cases, regardless of the memory space the compiler should give a warning and restrict the initialiser into the allocated bits. The attached program illustrates both cases: initialised structure in data and code memory. C:\>sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.7.4 #4 972 (Nov 24 2007) (MINGW32) C:\>ver Microsoft Windows XP [Version 5.1.2600] ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1856409&group_id=599 |
From: SourceForge.net <no...@so...> - 2008-04-23 13:27:50
|
Bugs item #1856409, was opened at 2007-12-22 16:20 Message generated for change (Settings changed) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1856409&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: fixed >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Laszlo BORTEL (bortel) >Assigned to: Maarten Brock (maartenbrock) Summary: bitfield initialiser overflows in code memory Initial Comment: When a bitfield initialiser is greater than the maximum allowed value for a given number of bits the compiler gives "warning 158: overflow in implicit constant conversion", and the generated initialiser code restricts the value into the allocated bits. It is OK so far. On the other hand when the initialised structure with bit fields is not in the data, but in the code memory the value overflows into the next bit field and no warning is given. I would expect the same behaviour in both cases, regardless of the memory space the compiler should give a warning and restrict the initialiser into the allocated bits. The attached program illustrates both cases: initialised structure in data and code memory. C:\>sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.7.4 #4 972 (Nov 24 2007) (MINGW32) C:\>ver Microsoft Windows XP [Version 5.1.2600] ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2008-04-23 15:27 Message: Logged In: YES user_id=888171 Originator: NO Fixed in SDCC 2.8.1 #5144. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1856409&group_id=599 |