[M3devel] overshifting?
Tony Hosking
hosking at cs.purdue.edu
Tue Mar 2 19:54:54 CET 2010
I'm trying to understand this. Surely shifting right will never be out of range? Looks like something is broken.
On 2 Mar 2010, at 09:04, Jay K wrote:
> PutLH(Long.RightShift(FIRST(LONGINT), 630)); PutT("\n");
>
>
> I'm guessing the warning is all you're supposed to get here?
>
>
> C:\dev2\cm3.2\m3-sys\m3tests\src\p2\p227>cm3
> --- building in NT386 ---
> new source -> compiling Main.m3
> "..\Main.m3", line 894: warning: value out of range
>
> ***
> *** runtime error:
> *** An enumeration or subrange value was out of range.
> *** file "..\src\TWordN.m3", line 129
> ***
> Stack trace:
> FP PC Procedure
> --------- --------- -------------------------------
> 0x12f0dc 0x48791a RightShift + 0x35 in ..\src\TWordN.m3
> 0x12f15c 0x47c62f doshift + 0x2c6 in ..\src\Stackx86.m3
> 0x12f188 0x4485d2 shift_right + 0x1b2 in ..\src\M3x86.m3
> 0x12f1ac 0x6414ed shift_right + 0xf5 in ..\src\M3CG_Check.m3
> 0x12f1d4 0x505a4f Shift_right + 0x87 in ..\src\misc\CG.m3
> 0x12f1f8 0x570641 CompileR + 0x1da in ..\NT386\LongShift.m3 => ..\src\builti
> nWord\Shift.mg
> 0x12f218 0x5cec2f Compile + 0x83 in ..\src\exprs\CallExpr.m3
> 0x12f234 0x5bfee4 Compile + 0x53 in ..\src\exprs\Expr.m3
> 0x12f274 0x5d19a7 EmitChecks + 0xdf in ..\src\exprs\CheckExpr.m3
> 0x12f2b4 0x5c8b15 GenOrdinal + 0xa6 in ..\src\values\Formal.m3
> ......... ......... ... more frames ...
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20100302/6b8012ad/attachment-0002.html>
More information about the M3devel
mailing list