From: SourceForge.net <no...@so...> - 2004-08-31 08:35:49
|
Bugs item #1019480, was opened at 2004-08-31 01:35 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=1019480&group_id=599 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: sign extension of signed bit-field Initial Comment: In assigning signed bit-field variable to larger signed variable, sign extension is not processed. Here is the code -- struct { signed b : 4; } a; signed char c; main() { a.b = -1; c = a.b; } -- and piece of produced asm code is -- ;test.c:10: c = a.b; ; genPointerGet ; genNearPointerGet mov r0,#_a ; genUnpackBits mov a,@r0 anl a,#0x0f mov r2,a ; genAssign mov _c,r2 -- 2nd assignment is masking lower 4bit and moving,and sign bit is not copied to higher 4bits. I tested this by sdcc version `2.4.4 #816 (Aug 31 2004)' on RedHat Linux 8.0. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1019480&group_id=599 |