[Mono-bugs] [Bug 431827] New: Addition with int and pointer generates wrong bytecode
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri Oct 3 02:07:07 EDT 2008
https://bugzilla.novell.com/show_bug.cgi?id=431827
Summary: Addition with int and pointer generates wrong bytecode
Product: Mono: Compilers
Version: 2.0
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: P5 - None
Component: C#
AssignedTo: msafar at novell.com
ReportedBy: avidigal at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
The following code:
public unsafe class TheClass
{
public unsafe byte* GetFoo () {
byte *one = null;
return 9 + one;
}
}
produces:
.locals init (
unsigned int8* V_0)
IL_0000: ldc.i4.0
IL_0001: conv.u
IL_0002: stloc.0
IL_0003: ldc.i4.s 0x09
IL_0005: ldloc.0
IL_0006: ldc.i4.4
IL_0007: mul
IL_0008: add
IL_0009: ret
Mono.CSharp.PointerArithmetic assumes the left operand is always a pointer, and
in this case it's not, so it ends up casting the int to a byte* and then
multiplying the pointer by 4 to compensate :P
This is actually a regression, 1.2.6 compiles correctly, and I'm thinking 1.9
does too (didn'test yet though)
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list