[Mono-bugs] [Bug 74992][Cri] Changed - ArumentException Bug

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Thu May 19 10:39:33 EDT 2005


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 vargaz at gmail.com.

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

--- shadow/74992	2005-05-19 08:41:53.000000000 -0400
+++ shadow/74992.tmp.5043	2005-05-19 10:39:33.000000000 -0400
@@ -69,6 +69,55 @@
 
 
 ------- Additional Comments From Yury at serdyuk.botik.ru  2005-05-19 08:41 -------
 Created an attachment (id=15163)
 Source module
 
+
+------- Additional Comments From vargaz at gmail.com  2005-05-19 10:39 -------
+Here is a reduced testcase:
+
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+using System;
+
+public class Tests {
+
+	public static int Main( String[] args ) {
+		return test_0_arg_only_written ("md.in", null);
+	}
+
+	public static int test_0_arg_only_written (string file_name, int[]
+ncells ) {
+		if (file_name == null)
+			return 1;
+
+		ncells = foo ();
+		bar (ncells [0]);
+
+		return 0;
+	}
+
+	public static int[] foo () {
+		return new int [3];
+	}
+
+	public static void bar (int i) {
+	}
+}
+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+
+It returns 1 when run, while it returns 0 when run with -O=-linears.
+
+The problem here is that the liveness range of the two arguments are
+disjoint, so both of them are allocated the same register (edi). In
+the prolog, they are loaded from the stack into the same register:
+   5:	8b 7d 08             	mov    0x8(%ebp),%edi
+   8:	8b 7d 0c             	mov    0xc(%ebp),%edi
+
+Here, the second load overwrites the first one.
+
+
+
+
+
+
+


More information about the mono-bugs mailing list