-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsI-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.
Milestone
Description
Version: rustc 0.5 (68c73dc 2012-11-18 15:00:43 -0800)
enum recursive_type {
recursive_value(~recursive_type, ~recursive_type),
leaf
}
fn main() {
let r = recursive_value(~leaf, ~leaf);
repr::write_repr2(io::stdout(), &r);
io::println("");
}
Backtrace:
(gdb) r
Starting program: /home/cdleary/tmp/crasher
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff7ff7700 (LWP 575)]
[New Thread 0x7ffff7ff2700 (LWP 576)]
~~
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff7ff2700 (LWP 576)]
0x00007ffff7aa3b3d in repr::__extensions__::meth_11970::visit_uniq::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
(gdb) bt
#0 0x00007ffff7aa3b3d in repr::__extensions__::meth_11970::visit_uniq::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#1 0x00007ffff7aa3a4d in reflect::__extensions__::visit_uniq_11962::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#2 0x0000000000403817 in glue_visit_1774 ()
#3 0x00007ffff7aa580b in repr::__extensions__::meth_12084::visit_enum_variant_field::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#4 0x00007ffff7aa5697 in reflect::__extensions__::visit_enum_variant_field_12082::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#5 0x00007ffff7ab50a0 in __morestack () from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#6 0x0000000000403604 in glue_visit_1770 ()
#7 0x00007ffff7aa3c5f in repr::__extensions__::meth_11970::visit_uniq::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#8 0x00007ffff7aa3a4d in reflect::__extensions__::visit_uniq_11962::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#9 0x0000000000403817 in glue_visit_1774 ()
#10 0x00007ffff7aa580b in repr::__extensions__::meth_12084::visit_enum_variant_field::_73a2decbe7873a81::_05 ()
from /home/cdleary/tmp/../opt/rust-master/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore-c3ca5d77d81b46c1-0.5.so
#11 0x0000000000407e2d in reflect::__extensions__::visit_enum_variant_field_2138::_1634aa8effcb368::_00 ()
#12 0x0000000000403604 in glue_visit_1770 ()
#13 0x000000000040410b in intrinsic::rusti::visit_tydesc_1822::_b1c47c813447841::_00 ()
#14 0x0000000000403bc5 in repr::write_repr2_1785::_31ee5679ee539e47::_00 ()
#15 0x0000000000408a48 in __morestack ()
#16 0x0000000000403093 in main::_9ef9bf229154ee9::_00 ()
#17 0x000000000040313e in _rust_main ()
#18 0x00007ffff77c0044 in task_start_wrapper (a=0x610ff0) at /home/cdleary/src/rust/src/rt/rust_task.cpp:150
#19 0x0000000000000000 in ?? ()
(gdb) x/10i $pc
=> 0x7ffff7aa3b3d <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+205>: mov (%rax),%r13
0x7ffff7aa3b40 <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+208>: lea -0x70(%rbp),%r12
0x7ffff7aa3b44 <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+212>: mov 0x8(%rbx),%rax
0x7ffff7aa3b48 <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+216>: mov 0x10(%rbx),%rcx
0x7ffff7aa3b4c <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+220>: mov %rcx,-0x68(%rbp)
0x7ffff7aa3b50 <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+224>: mov %rax,-0x70(%rbp)
0x7ffff7aa3b54 <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+228>: xor %edi,%edi
0x7ffff7aa3b56 <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+230>: xor %esi,%esi
0x7ffff7aa3b58 <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+232>: xor %edx,%edx
0x7ffff7aa3b5a <_ZN4repr14__extensions__10meth_1197010visit_uniq17_73a2decbe7873a813_05E+234>: mov %r12,%rcx
(gdb) p $rax
$1 = 32
Not too familiar with how these raw types will codegen, but I'll attempt some printf debugging in repr.rs to see if anything obvious to fix pops out.
Metadata
Metadata
Assignees
Labels
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsI-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.