Closed
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.