[Mono-bugs] [Bug 648376] New: mono --llvm crashes when unsafe code contains 'stackalloc'-keyword
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Thu Oct 21 11:53:03 EDT 2010
https://bugzilla.novell.com/show_bug.cgi?id=648376
https://bugzilla.novell.com/show_bug.cgi?id=648376#c0
Summary: mono --llvm crashes when unsafe code contains
'stackalloc'-keyword
Classification: Mono
Product: Mono: Runtime
Version: SVN
Platform: x86-64
OS/Version: Ubuntu
Status: NEW
Severity: Normal
Priority: P5 - None
Component: JIT
AssignedTo: lupus at novell.com
ReportedBy: kummer at fdy.tu-darmstadt.de
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
Created an attachment (id=396320)
--> (http://bugzilla.novell.com/attachment.cgi?id=396320)
compiled with Microsoft csc, crashing with mono --llvm
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3
This is the code:
------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MonoBugTest {
class Program {
static void Main(string[] args) {
unsafe {
double* pd = stackalloc double[3];
pd[0] = 0;
pd[1] = 0;
pd[2] = 0;
}
}
}
}
------------------------------------
* the error only occurs when de code is compiled with Microsoft Compiler
when compiled with Mono mcs, everything is fine;
* it seems that the runtime crashes during JIT-compilation, the method is not
entered.
Reproducible: Always
Steps to Reproduce:
1. Compile the Code above with Microsoft Visual Studio 2010 (or use provided
binary)
2. execute under Linux with mono --llvm
Actual Results:
mono: Instructions.cpp:1691: static llvm::BinaryOperator*
llvm::BinaryOperator::Create(llvm::Instruction::BinaryOps, llvm::Value*,
llvm::Value*, const llvm::Twine&, llvm::Instruction*): Assertion `S1->getType()
== S2->getType() && "Cannot create binary operator with two operands of
differing type!"' failed.
Stacktrace:
Native stacktrace:
mono() [0x4922cb]
/lib/libpthread.so.0(+0xf8f0) [0x7f1089c018f0]
/lib/libc.so.6(gsignal+0x35) [0x7f108968ba75]
/lib/libc.so.6(abort+0x180) [0x7f108968f5c0]
/lib/libc.so.6(__assert_fail+0xf1) [0x7f1089684941]
mono() [0xbd675d]
mono() [0xb9db95]
mono() [0x4c74c7]
mono() [0x420f2a]
mono() [0x422d2f]
mono() [0x423929]
mono(mono_runtime_invoke+0x4b) [0x58ebcb]
mono(mono_runtime_exec_main+0xd3) [0x592463]
mono(mono_main+0x18ef) [0x47189f]
/lib/libc.so.6(__libc_start_main+0xfd) [0x7f1089676c4d]
mono() [0x418939]
Debug info from gdb:
Mono support loaded.
[Thread debugging using libthread_db enabled]
[New Thread 0x7f1087ca8710 (LWP 3096)]
[New Thread 0x7f1089657710 (LWP 3095)]
0x00007f1089c0093d in read () from /lib/libpthread.so.0
3 Thread 0x7f1089657710 (LWP 3095) 0x00007f1089bfd85c in
pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
2 Thread 0x7f1087ca8710 (LWP 3096) 0x00007f1089bffb50 in sem_wait ()
from /lib/libpthread.so.0
* 1 Thread 0x7f108a9b5760 (LWP 3094) 0x00007f1089c0093d in read ()
from /lib/libpthread.so.0
Thread 3 (Thread 0x7f1089657710 (LWP 3095)):
#0 0x00007f1089bfd85c in pthread_cond_wait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#1 0x00000000005ea4dc in GC_wait_marker () at pthread_support.c:1787
#2 0x00000000005f5802 in GC_help_marker (my_mark_no=2) at mark.c:1116
#3 0x00000000005e91b8 in GC_mark_thread (id=0x0) at pthread_support.c:548
#4 0x00007f1089bf89ca in start_thread () from /lib/libpthread.so.0
#5 0x00007f108973e6fd in clone () from /lib/libc.so.6
#6 0x0000000000000000 in ?? ()
Thread 2 (Thread 0x7f1087ca8710 (LWP 3096)):
#0 0x00007f1089bffb50 in sem_wait () from /lib/libpthread.so.0
#1 0x00000000005d35b8 in mono_sem_wait (sem=0x11c1760, alertable=0)
at mono-semaphore.c:102
#2 0x00000000005525e2 in finalizer_thread (unused=<value optimized out>)
at gc.c:1048
#3 0x000000000055cbff in start_wrapper (data=<value optimized out>)
at threads.c:744
#4 0x00000000005ba044 in thread_start_routine (args=0x27c38d0)
at wthreads.c:285
#5 0x00000000005ea13f in GC_start_routine (arg=0x7f108a813fc0)
at pthread_support.c:1392
#6 0x00007f1089bf89ca in start_thread () from /lib/libpthread.so.0
#7 0x00007f108973e6fd in clone () from /lib/libc.so.6
#8 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7f108a9b5760 (LWP 3094)):
#0 0x00007f1089c0093d in read () from /lib/libpthread.so.0
#1 0x0000000000492457 in read (signal=<value optimized out>,
ctx=<value optimized out>) at /usr/include/bits/unistd.h:45
#2 mono_handle_native_sigsegv (signal=<value optimized out>,
ctx=<value optimized out>) at mini-exceptions.c:1935
#3 <signal handler called>
#4 0x00007f108968ba75 in raise () from /lib/libc.so.6
#5 0x00007f108968f5c0 in abort () from /lib/libc.so.6
#6 0x00007f1089684941 in __assert_fail () from /lib/libc.so.6
#7 0x0000000000bd675d in
llvm::BinaryOperator::Create(llvm::Instruction::BinaryOps, llvm::Value*,
llvm::Value*, llvm::Twine const&, llvm::Instruction*) ()
#8 0x0000000000b9db95 in LLVMBuildAdd ()
#9 0x00000000004c74c7 in process_bb (cfg=<value optimized out>)
at mini-llvm.c:2771
#10 mono_llvm_emit_method (cfg=<value optimized out>) at mini-llvm.c:4000
#11 0x0000000000420f2a in mini_method_compile (method=
"MonoBugTest.Program:Main ()", opts=<value optimized out>,
domain=<value optimized out>, run_cctors=<value optimized out>,
compile_aot=<value optimized out>, parts=<value optimized out>)
at mini.c:4550
#12 0x0000000000422d2f in mono_jit_compile_method_inner (method=
"MonoBugTest.Program:Main ()", opt=51472895, ex=0x7fffa1fc00a8)
at mini.c:4835
#13 mono_jit_compile_method_with_opt (method="MonoBugTest.Program:Main ()",
opt=51472895, ex=0x7fffa1fc00a8) at mini.c:5043
#14 0x0000000000423929 in mono_jit_runtime_invoke (method=
"MonoBugTest.Program:Main ()", obj=0x0, params=<value optimized out>, exc=
0x0) at mini.c:5241
#15 0x000000000058ebcb in mono_runtime_invoke (method=
"MonoBugTest.Program:Main ()", obj=0x0, params=0x7fffa1fc0240, exc=0x0)
at object.c:2709
#16 0x0000000000592463 in mono_runtime_exec_main (method=
"MonoBugTest.Program:Main ()", args=<value optimized out>, exc=0x0)
at object.c:3846
#17 0x000000000047189f in main_thread_handler (argc=<value optimized out>,
argv=<value optimized out>) at driver.c:999
#18 mono_main (argc=<value optimized out>, argv=<value optimized out>)
at driver.c:1830
#19 0x00007f1089676c4d in __libc_start_main () from /lib/libc.so.6
#20 0x0000000000418939 in _start ()
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
--
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