[Mono-bugs] [Bug 30729][Maj] Changed - Incorrect result of bitwise AND operation on long

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
20 Sep 2002 09:53:27 -0000


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by dietmar@ximian.com.

http://bugzilla.ximian.com/show_bug.cgi?id=30729

--- shadow/30729	Thu Sep 19 21:05:04 2002
+++ shadow/30729.tmp.17387	Fri Sep 20 05:53:27 2002
@@ -1,10 +1,10 @@
 Bug#: 30729
 Product: Mono/MCS
 Version: unspecified
-OS: 
+OS: unknown
 OS Details: Mandrake
 Status: NEW   
 Resolution: 
 Severity: Unknown
 Priority: Major
 Component: Misc
@@ -41,6 +41,26 @@
 0 0 0 128 0 0 0 0
 
 How often does this happen? 
 When the 31th bit (of the 0th - 63rd bits) of both operands are "1"
 
 Additional Information:
+
+------- Additional Comments From dietmar@ximian.com  2002-09-20 05:53 -------
+The above program does not compile, I had to replace rs >= 8 with rs
+>>= 8. But I get:
+
+0 0 0 128 0 0 0 0 
+
+with both mono and mint when compile with csc. But when compiled with
+mcs I get the wrong results. the problem is that mcs generate wrong
+code to load the constant:
+
+	IL_0000: ldc.i4 -2147483648
+	IL_0005: conv.i8 
+
+which does sign extension, instead of:
+
+	IL_0000: ldc.i4 -2147483648
+ 	IL_0005: conv.u8 
+
+