Modified: MacRuby/branches/ticket159/compiler.cpp (3171 => 3172)
--- MacRuby/branches/ticket159/compiler.cpp 2009-12-24 04:39:30 UTC (rev 3171)
+++ MacRuby/branches/ticket159/compiler.cpp 2009-12-24 23:18:43 UTC (rev 3172)
@@ -2470,13 +2470,6 @@
}
}
- if (newFloatFunc == NULL) {
- // VALUE rb_float_new_retained(double)
- newFloatFunc = cast<Function>
- (module->getOrInsertFunction("rb_float_new_retained",
- RubyObjTy, DoubleTy, NULL));
- }
-
rb_vm_immediate_val_t leftImm, rightImm;
const bool leftIsImmediateConst = unbox_immediate_val(leftRVal,
&leftImm);
@@ -2586,8 +2579,8 @@
BranchInst::Create(not_redefined_bb, dispatch_bb, isOpRedefined,
bb);
- BasicBlock *div_by_zero_bb;
- BasicBlock *optimize_fixnum_cont_bb;
+ BasicBlock *div_by_zero_bb = NULL;
+ BasicBlock *optimize_fixnum_cont_bb = NULL;
BasicBlock *optimize_fixnum_ret_bb;
/*
* In the case of integer division, we need to test for the
@@ -2763,6 +2756,13 @@
if (!result_is_predicate) {
// Box the float.
+ if (newFloatFunc == NULL) {
+ // VALUE rb_float_new_retained(double)
+ newFloatFunc = cast<Function>
+ (module->getOrInsertFunction("rb_float_new_retained",
+ RubyObjTy, DoubleTy,
+ NULL));
+ }
std::vector<Value *> params;
params.push_back(flp_op_res);
flp_op_res = CallInst::Create(newFloatFunc, params.begin(),