[MacRuby] #1034: Requiring Mechanize gives segmentation fault
#1034: Requiring Mechanize gives segmentation fault ------------------------------+--------------------------------------------- Reporter: vegar@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: MacRuby 0.8 Component: MacRuby | Keywords: meahanize ------------------------------+--------------------------------------------- Trying to include Mechanize in a MacRuby project leads to a segmentation fault. Steps to reproduce: 1. Install mechanize - sudo macgem install mechanize 2. Start macirb - macirb 3. Require rubygems - require 'rubygems' 4. Require mechanize - require 'mechanize' In the macruby build from 3. december, macirb goes down with the following error: Assertion failed: (InReg && "Value not in map!"), function getValue, file SelectionDAGBuilder.cpp, line 917. Abort trap In the build from 8. december, this is replaced with at 'Segmentation Fault'. -- Ticket URL: <http://www.macruby.org/trac/ticket/1034> MacRuby <http://macruby.org/>
#1034: Requiring Mechanize gives segmentation fault ------------------------------+--------------------------------------------- Reporter: vegar@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: meahanize ------------------------------+--------------------------------------------- Changes (by lsansonetti@…): * milestone: MacRuby 0.8 => Comment: We need a reduction before screening the bug. -- Ticket URL: <http://www.macruby.org/trac/ticket/1034#comment:1> MacRuby <http://macruby.org/>
#1034: Requiring Mechanize gives segmentation fault ------------------------------+--------------------------------------------- Reporter: vegar@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: meahanize ------------------------------+--------------------------------------------- Comment(by watson1978@…): {{{ $ DYLD_LIBRARY_PATH=. ./macruby -r rubygems -r mechanize -e 'p 10' zsh: segmentation fault DYLD_LIBRARY_PATH=. ./macruby -r rubygems -r mechanize -e 'p 10' }}} BackTrace: {{{ Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000048 0x0000000100490f21 in llvm::LiveVariables::HandleVirtRegUse () at vector.tcc:300 300 this->_M_impl._M_end_of_storage = __new_start + __len; (gdb) bt #0 0x0000000100490f21 in llvm::LiveVariables::HandleVirtRegUse () at vector.tcc:300 #1 0x0000000100491982 in llvm::LiveVariables::runOnMachineFunction () at vector.tcc:300 #2 0x00000001004ab55d in llvm::MachineFunctionPass::runOnFunction () at vector.tcc:300 #3 0x000000010087c480 in llvm::FPPassManager::runOnFunction () at StringRef.h:59 #4 0x000000010087c61c in llvm::FunctionPassManagerImpl::run () at StringRef.h:59 #5 0x000000010087c909 in llvm::FunctionPassManager::run () at StringRef.h:59 #6 0x000000010042b33a in llvm::JIT::jitTheFunction () at TargetData.h:129 #7 0x000000010042b8c1 in llvm::JIT::getPointerToFunction () at TargetData.h:129 #8 0x000000010014a7f0 in RoxorCore::compile (this=0x10186fc00, func=0x107b80780, run_optimize=true) at vm.cpp:586 #9 0x0000000100153b3e in prepare_method (klass=0x2004f7580, dynamic_class=false, sel=0x10487dee0, data=0x107b80780, arity=@0x7fff5fbf8bb8, flags=0, precompiled=false, objc_imp_types=0x0) at vm.cpp:2120 #10 0x00000001001541fb in rb_vm_prepare_method (klass=0x2004f7580, dynamic_class=0 '\0', sel=0x10487dee0, func=0x107b80780, arity={min = 2, max = 2, left_req = 2, real = 2}, flags=0) at vm.cpp:2199 #11 0x00000001075377bb in ?? () #12 0x000000010753762b in ?? () #13 0x000000010753751b in ?? () #14 0x0000000107537408 in ?? () #15 0x0000000100151ac7 in rb_vm_run (fname=0x200482780 "/Library/Frameworks/MacRuby.framework/Versions/0.8/usr/lib/ruby/Gems/1.9.2/gems/mechanize-1.0.0/lib/mechanize/chain/connection_resolver.rb", node=0x2003e7e20, binding=0x0, inside_eval=false) at vm.cpp:3930 #16 0x0000000100040d5c in rb_load (fname=8594777152, wrap=0) at load.c:103 #17 0x00000001000412b9 in load_try (path=8594748576) at load.c:259 #18 0x000000010015056d in rb_rescue2 (b_proc=0x10004129f <load_try>, data1=8594748576, r_proc=0x1000412df <load_rescue>, data2=8594748576) at vm.cpp:3492 #19 0x00000001000413e6 in rb_require_safe (fname=8594948832, safe=0) at load.c:305 #20 0x0000000100040de2 in rb_f_require (obj=8590070080, fname=8594948960) at load.c:157 #21 0x0000000100040e05 in rb_f_require_imp (obj=8590070080, sel=0x102eadac0, fname=8594948960) at load.c:163 #22 0x0000000100137652 in __rb_vm_rcall [inlined] () at /Users/qoo/src/MacRuby/dispatcher.cpp:161 #23 0x0000000100137652 in ruby_dispatch [inlined] () at /Users/qoo/src/MacRuby/dispatcher.cpp:466 #24 0x0000000100137652 in rb_vm_dispatch () at dispatcher.cpp:849 #25 0x00000001033fb080 in dyld_stub_strncpy () ----snip---- }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1034#comment:2> MacRuby <http://macruby.org/>
#1034: Requiring Mechanize gives segmentation fault ------------------------------+--------------------------------------------- Reporter: vegar@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: meahanize ------------------------------+--------------------------------------------- Comment(by lsansonetti@…): We crash because we are compiling a bad function. {{{ (gdb) p func->dump() define internal i64 @ruby_scope2102(i64 %self, i8* %sel, i64 %ctx, i64 %params) { MainBlock: %argv105 = alloca [6 x i64], align 8 ; <[6 x i64]*> [#uses=9] %0 = load i8* @542 ; <i8> [#uses=1] %1 = call i64 @vm_fast_aref(i64 %params, i64 17187762816, i8 %0) ; <i64> [#uses=5] %2 = call i64 @vm_dispatch(i64 %self, i64 %1, i8* inttoptr (i64 140735647268441 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !0 ; <i64> [#uses=1] %3 = call i64 @vm_dispatch(i64 %self, i64 %2, i8* inttoptr (i64 4307274176 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !0 ; <i64> [#uses=3] %4 = call i64 @rb_str_new(i8* getelementptr inbounds ([5 x i8]* @544, i64 0, i64 0), i32 4) ; <i64> [#uses=1] %5 = load i8* @562 ; <i8> [#uses=1] %6 = call i64 @vm_fast_eqq(i64 %4, i64 %3, i8 %5) ; <i64> [#uses=1] switch i64 %6, label %then [ i64 0, label %next_test i64 4, label %next_test ] case_merge: ; preds = %next_test5.case_merge_crit_edge, %then92, %merge34 %.0 = phi i64 [ %111, %then92 ], [ %.1, %merge34 ], [ 4, %next_test5.case_merge_crit_edge ] ; <i64> [#uses=2] %7 = bitcast [6 x i64]* %argv105 to i64* ; <i64*> [#uses=4] %8 = load i64* @1875 ; <i64> [#uses=1] %9 = call i64 @vm_get_const(i64 %8, i8* inttoptr (i64 4417037952 to i8*), i64 38861, i32 1) ; <i64> [#uses=1] store i64 %9, i64* %7 %10 = call i64 @vm_dispatch(i64 %self, i64 %.0, i8* inttoptr (i64 4307357632 to i8*), i8* null, i8 0, i32 1, i64* %7), !dbg !2 ; <i64> [#uses=0] %11 = load i8* @543 ; <i8> [#uses=1] %12 = call i64 @vm_fast_aset(i64 %params, i64 17187845856, i64 %.0, i8 %11) ; <i64> [#uses=0] %13 = call i8* @vm_get_block(i64 <badref>) ; <i8*> [#uses=1] store i64 %ctx, i64* %7 %14 = getelementptr [6 x i64]* %argv105, i64 0, i64 1 ; <i64*> [#uses=1] store i64 %params, i64* %14 %15 = call i64 @vm_dispatch(i64 %self, i64 %self, i8* inttoptr (i64 4343093872 to i8*), i8* %13, i8 4, i32 2, i64* %7), !dbg !3 ; <i64> [#uses=1] ret i64 %15 then: ; preds = %next_test, %MainBlock %16 = call i64 @vm_ivar_get(i64 %self, i64 17793, i8* inttoptr (i64 4427566448 to i8*)) ; <i64> [#uses=2] %17 = call i64 @rb_str_new_empty() ; <i64> [#uses=1] %18 = call i64 @vm_dispatch(i64 %self, i64 %1, i8* inttoptr (i64 140735647467272 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !4 ; <i64> [#uses=1] %19 = call i64 @rb_str_new(i8* getelementptr inbounds ([2 x i8]* @761, i64 0, i64 0), i32 1) ; <i64> [#uses=1] %20 = call i64 @vm_dispatch(i64 %self, i64 %1, i8* inttoptr (i64 140735730191293 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !4 ; <i64> [#uses=1] %21 = call i64 (i32, ...)* @rb_str_new_fast(i32 4, i64 %17, i64 %18, i64 %19, i64 %20) ; <i64> [#uses=2] %22 = load i8* @542 ; <i8> [#uses=1] %23 = call i64 @vm_fast_aref(i64 %16, i64 %21, i8 %22) ; <i64> [#uses=2] switch i64 %23, label %then.merge_crit_edge [ i64 0, label %normal11 i64 4, label %normal11 ] then.merge_crit_edge: ; preds = %then br label %merge next_test: ; preds = %MainBlock, %MainBlock %24 = call i64 @rb_str_new(i8* getelementptr inbounds ([6 x i8]* @545, i64 0, i64 0), i32 5) ; <i64> [#uses=1] %25 = load i8* @562 ; <i8> [#uses=1] %26 = call i64 @vm_fast_eqq(i64 %24, i64 %3, i8 %25) ; <i64> [#uses=1] switch i64 %26, label %then [ i64 0, label %next_test5 i64 4, label %next_test5 ] next_test5: ; preds = %next_test, %next_test %27 = call i64 @rb_str_new(i8* getelementptr inbounds ([5 x i8]* @547, i64 0, i64 0), i32 4) ; <i64> [#uses=1] %28 = load i8* @562 ; <i8> [#uses=1] %29 = call i64 @vm_fast_eqq(i64 %27, i64 %3, i8 %28) ; <i64> [#uses=1] switch i64 %29, label %then92 [ i64 0, label %next_test5.case_merge_crit_edge i64 4, label %next_test5.case_merge_crit_edge ] next_test5.case_merge_crit_edge: ; preds = %next_test5, %next_test5 br label %case_merge normal11: ; preds = %then, %then %30 = call i64 @vm_rhash_new() ; <i64> [#uses=3] call void @vm_rhash_store(i64 %30, i64 17187845856, i64 4) %31 = call i64 @vm_rhash_new() ; <i64> [#uses=1] call void @vm_rhash_store(i64 %30, i64 17188228064, i64 %31) %32 = load i8* @543 ; <i8> [#uses=1] %33 = call i64 @vm_fast_aset(i64 %16, i64 %21, i64 %30, i8 %32) ; <i64> [#uses=1] br label %merge merge: ; preds = %then.merge_crit_edge, %normal11 %34 = phi i64 [ %33, %normal11 ], [ %23, %then.merge_crit_edge ] ; <i64> [#uses=6] %35 = load i8* @542 ; <i8> [#uses=1] %36 = call i64 @vm_fast_aref(i64 %34, i64 17187845856, i8 %35) ; <i64> [#uses=3] %37 = call i64 @vm_dispatch(i64 %self, i64 %36, i8* inttoptr (i64 4306887728 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !5 ; <i64> [#uses=2] switch i64 %37, label %merge.merge13_crit_edge [ i64 0, label %left_not_true i64 4, label %left_not_true ] merge.merge13_crit_edge: ; preds = %merge br label %merge13 left_not_true: ; preds = %merge, %merge %38 = call i64 @vm_dispatch(i64 %self, i64 %36, i8* inttoptr (i64 4387596112 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !5 ; <i64> [#uses=1] switch i64 %38, label %40 [ i64 0, label %left_not_true._crit_edge i64 4, label %left_not_true._crit_edge ] left_not_true._crit_edge: ; preds = %left_not_true, %left_not_true br label %41 merge13: ; preds = %merge.merge13_crit_edge, %41 %39 = phi i64 [ %37, %merge.merge13_crit_edge ], [ %42, %41 ] ; <i64> [#uses=1] switch i64 %39, label %then17 [ i64 0, label %merge13.merge18_crit_edge i64 4, label %merge13.merge18_crit_edge ] merge13.merge18_crit_edge: ; preds = %merge13, %merge13 br label %merge18 ; <label>:40 ; preds = %left_not_true br label %41 ; <label>:41 ; preds = %left_not_true._crit_edge, %40 %42 = phi i64 [ 0, %40 ], [ 2, %left_not_true._crit_edge ] ; <i64> [#uses=1] br label %merge13 then17: ; preds = %merge13 %43 = bitcast [6 x i64]* %argv105 to i64* ; <i64*> [#uses=2] %44 = load i64* @1875 ; <i64> [#uses=1] %45 = call i64 @vm_get_const(i64 %44, i8* inttoptr (i64 4387725584 to i8*), i64 18869, i32 1) ; <i64> [#uses=1] %46 = call i64 @vm_get_const(i64 %45, i8* inttoptr (i64 4342662336 to i8*), i64 19069, i32 0) ; <i64> [#uses=1] %47 = call i64 @vm_dispatch(i64 %self, i64 %1, i8* inttoptr (i64 140735647467272 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !6 ; <i64> [#uses=1] %48 = call i64 @vm_dispatch(i64 %self, i64 %1, i8* inttoptr (i64 140735730191293 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !7 ; <i64> [#uses=1] %49 = call i64 @vm_ivar_get(i64 %self, i64 17737, i8* inttoptr (i64 4427581408 to i8*)) ; <i64> [#uses=1] %50 = call i64 @vm_ivar_get(i64 %self, i64 17753, i8* inttoptr (i64 4427407088 to i8*)) ; <i64> [#uses=1] %51 = call i64 @vm_ivar_get(i64 %self, i64 17761, i8* inttoptr (i64 4427345072 to i8*)) ; <i64> [#uses=1] %52 = call i64 @vm_ivar_get(i64 %self, i64 17745, i8* inttoptr (i64 4427406528 to i8*)) ; <i64> [#uses=1] store i64 %47, i64* %43 %53 = getelementptr [6 x i64]* %argv105, i64 0, i64 1 ; <i64*> [#uses=1] store i64 %48, i64* %53 %54 = getelementptr [6 x i64]* %argv105, i64 0, i64 2 ; <i64*> [#uses=1] store i64 %49, i64* %54 %55 = getelementptr [6 x i64]* %argv105, i64 0, i64 3 ; <i64*> [#uses=1] store i64 %50, i64* %55 %56 = getelementptr [6 x i64]* %argv105, i64 0, i64 4 ; <i64*> [#uses=1] store i64 %51, i64* %56 %57 = getelementptr [6 x i64]* %argv105, i64 0, i64 5 ; <i64*> [#uses=1] store i64 %52, i64* %57 %58 = call i64 @vm_dispatch(i64 %self, i64 %46, i8* inttoptr (i64 4306630128 to i8*), i8* null, i8 0, i32 6, i64* %43), !dbg !8 ; <i64> [#uses=2] %59 = load i8* @543 ; <i8> [#uses=1] %60 = call i64 @vm_fast_aset(i64 %34, i64 17187845856, i64 %58, i8 %59) ; <i64> [#uses=0] %61 = call i64 @vm_rhash_new() ; <i64> [#uses=1] %62 = load i8* @543 ; <i8> [#uses=1] %63 = call i64 @vm_fast_aset(i64 %34, i64 17188228064, i64 %61, i8 %62) ; <i64> [#uses=0] br label %merge18 merge18: ; preds = %merge13.merge18_crit_edge, %then17 %.1 = phi i64 [ %58, %then17 ], [ %36, %merge13.merge18_crit_edge ] ; <i64> [#uses=3] %64 = call i64 @vm_ivar_get(i64 %self, i64 17809, i8* inttoptr (i64 4427504160 to i8*)) ; <i64> [#uses=2] switch i64 %64, label %left_is_true28 [ i64 0, label %merge18.merge30_crit_edge i64 4, label %merge18.merge30_crit_edge ] merge18.merge30_crit_edge: ; preds = %merge18, %merge18 br label %merge30 left_is_true28: ; preds = %merge18 %65 = call i64 @vm_dispatch(i64 %self, i64 %.1, i8* inttoptr (i64 4387596112 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !9 ; <i64> [#uses=1] br label %merge30 merge30: ; preds = %merge18.merge30_crit_edge, %left_is_true28 %66 = phi i64 [ %64, %merge18.merge30_crit_edge ], [ %65, %left_is_true28 ] ; <i64> [#uses=1] switch i64 %66, label %then32 [ i64 0, label %merge34 i64 4, label %merge34 ] then32: ; preds = %merge30 %67 = load i8* @542 ; <i8> [#uses=1] %68 = call i64 @vm_fast_aref(i64 %34, i64 17188228064, i8 %67) ; <i64> [#uses=4] %69 = load i8* @542 ; <i8> [#uses=1] %70 = call i64 @vm_fast_aref(i64 %68, i64 17184783136, i8 %69) ; <i64> [#uses=2] switch i64 %70, label %left_is_true45 [ i64 0, label %then32.merge50_crit_edge i64 4, label %then32.merge50_crit_edge ] then32.merge50_crit_edge: ; preds = %then32, %then32 br label %merge50 merge34: ; preds = %merge43, %merge43, %merge79, %merge30, %merge30 %71 = load i64* @1875 ; <i64> [#uses=1] %72 = call i64 @vm_get_const(i64 %71, i8* inttoptr (i64 4340611040 to i8*), i64 10733, i32 1) ; <i64> [#uses=1] %73 = call i64 @vm_dispatch(i64 %self, i64 %72, i8* inttoptr (i64 140735637114523 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !10 ; <i64> [#uses=1] %74 = call i64 @vm_dispatch(i64 %self, i64 %73, i8* inttoptr (i64 4307210912 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !10 ; <i64> [#uses=1] %75 = load i8* @543 ; <i8> [#uses=1] %76 = call i64 @vm_fast_aset(i64 %34, i64 17189695712, i64 %74, i8 %75) ; <i64> [#uses=0] br label %case_merge left_not_true38: ; preds = %merge50, %merge50 %77 = load i8* @542 ; <i8> [#uses=1] %78 = call i64 @vm_fast_aref(i64 %68, i64 17184784832, i8 %77) ; <i64> [#uses=2] switch i64 %78, label %left_is_true61 [ i64 0, label %left_not_true38.merge43_crit_edge i64 4, label %left_not_true38.merge43_crit_edge ] left_not_true38.merge43_crit_edge: ; preds = %left_not_true38, %left_not_true38 br label %merge43 merge43: ; preds = %merge50.merge43_crit_edge, %left_not_true38.merge43_crit_edge, %left_is_true61 %79 = phi i64 [ %93, %merge50.merge43_crit_edge ], [ %78, %left_not_true38.merge43_crit_edge ], [ %98, %left_is_true61 ] ; <i64> [#uses=1] switch i64 %79, label %then71 [ i64 0, label %merge34 i64 4, label %merge34 ] left_is_true45: ; preds = %then32 %80 = load i64* @1875 ; <i64> [#uses=1] %81 = call i64 @vm_get_const(i64 %80, i8* inttoptr (i64 4340611040 to i8*), i64 10733, i32 1) ; <i64> [#uses=1] %82 = call i64 @vm_dispatch(i64 %self, i64 %81, i8* inttoptr (i64 140735637114523 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !11 ; <i64> [#uses=1] %83 = call i64 @vm_dispatch(i64 %self, i64 %82, i8* inttoptr (i64 4307210912 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !11 ; <i64> [#uses=1] %84 = load i8* @542 ; <i8> [#uses=1] %85 = call i64 @vm_fast_aref(i64 %34, i64 17189695712, i8 %84) ; <i64> [#uses=1] %86 = load i8* @601 ; <i8> [#uses=1] %87 = call i64 @vm_fast_minus(i64 %83, i64 %85, i8 %86) ; <i64> [#uses=1] %88 = load i8* @542 ; <i8> [#uses=1] %89 = call i64 @vm_fast_aref(i64 %68, i64 17184783136, i8 %88) ; <i64> [#uses=1] %90 = call i64 @vm_dispatch(i64 %self, i64 %89, i8* inttoptr (i64 4307210912 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !11 ; <i64> [#uses=1] %91 = load i8* @580 ; <i8> [#uses=1] %92 = call i64 @vm_fast_gt(i64 %87, i64 %90, i8 %91) ; <i64> [#uses=1] br label %merge50 merge50: ; preds = %then32.merge50_crit_edge, %left_is_true45 %93 = phi i64 [ %70, %then32.merge50_crit_edge ], [ %92, %left_is_true45 ] ; <i64> [#uses=2] switch i64 %93, label %merge50.merge43_crit_edge [ i64 0, label %left_not_true38 i64 4, label %left_not_true38 ] merge50.merge43_crit_edge: ; preds = %merge50 br label %merge43 left_is_true61: ; preds = %left_not_true38 %94 = load i8* @542 ; <i8> [#uses=1] %95 = call i64 @vm_fast_aref(i64 %68, i64 17184784832, i8 %94) ; <i64> [#uses=1] %96 = call i64 @vm_dispatch(i64 %self, i64 %95, i8* inttoptr (i64 4307210912 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !12 ; <i64> [#uses=1] %97 = load i8* @582 ; <i8> [#uses=1] %98 = call i64 @vm_fast_eq(i64 %96, i64 5, i8 %97) ; <i64> [#uses=1] br label %merge43 then71: ; preds = %merge43 %99 = load i64* @1875 ; <i64> [#uses=1] %100 = call i64 @vm_get_const(i64 %99, i8* inttoptr (i64 4342871248 to i8*), i64 17253, i32 1) ; <i64> [#uses=1] %101 = call i64 @vm_dispatch(i64 %self, i64 %100, i8* inttoptr (i64 140735586760668 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !13 ; <i64> [#uses=1] switch i64 %101, label %then77 [ i64 0, label %merge79 i64 4, label %merge79 ] then77: ; preds = %then71 %102 = bitcast [6 x i64]* %argv105 to i64* ; <i64*> [#uses=2] %103 = load i64* @1875 ; <i64> [#uses=1] %104 = call i64 @vm_get_const(i64 %103, i8* inttoptr (i64 4342871248 to i8*), i64 17253, i32 1) ; <i64> [#uses=1] %105 = call i64 @vm_dispatch(i64 %self, i64 %104, i8* inttoptr (i64 140735586760668 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !13 ; <i64> [#uses=1] %106 = call i64 @rb_str_new(i8* getelementptr inbounds ([27 x i8]* @1876, i64 0, i64 0), i32 26) ; <i64> [#uses=1] store i64 %106, i64* %102 %107 = call i64 @vm_dispatch(i64 %self, i64 %105, i8* inttoptr (i64 4340748592 to i8*), i8* null, i8 0, i32 1, i64* %102), !dbg !13 ; <i64> [#uses=0] br label %merge79 merge79: ; preds = %then71, %then71, %then77 %108 = call i64 @vm_dispatch(i64 %self, i64 %.1, i8* inttoptr (i64 140735722266157 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !14 ; <i64> [#uses=0] br label %merge34 then92: ; preds = %next_test5 %109 = load i64* @1875 ; <i64> [#uses=1] %110 = call i64 @vm_get_const(i64 %109, i8* inttoptr (i64 4387571792 to i8*), i64 8229, i32 1) ; <i64> [#uses=1] %111 = call i64 @vm_dispatch(i64 %self, i64 %110, i8* inttoptr (i64 140735647727148 to i8*), i8* null, i8 0, i32 0, i64* null), !dbg !15 ; <i64> [#uses=2] %112 = call i64 @rb_singleton_class(i64 %111) ; <i64> [#uses=4] store i64 %112, i64* @1877 call void @vm_set_current_scope(i64 %112, i32 1) %113 = call i64 @ruby_scope2103(i64 %112, i8* null) ; <i64> [#uses=0] call void @vm_set_current_scope(i64 %112, i32 0) br label %case_merge } }}} vm_get_block is called with a badref -- Ticket URL: <http://www.macruby.org/trac/ticket/1034#comment:3> MacRuby <http://macruby.org/>
#1034: Requiring Mechanize gives segmentation fault ------------------------------+--------------------------------------------- Reporter: vegar@… | Owner: lsansonetti@… Type: defect | Status: closed Priority: blocker | Milestone: MacRuby 0.9 Component: MacRuby | Resolution: fixed Keywords: meahanize | ------------------------------+--------------------------------------------- Changes (by lsansonetti@…): * status: new => closed * resolution: => fixed * milestone: => MacRuby 0.9 Comment: Should be fixed in r5048. -- Ticket URL: <http://www.macruby.org/trac/ticket/1034#comment:4> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby