Commit 4b446b49 authored by Stefan Behnel's avatar Stefan Behnel

patch cleanup and test fix (avoid uninitialised variable)

--HG--
rename : tests/bugs/rangeOptimization_T203.pyx => tests/run/range_optimisation_T203.pyx
parent fc263982
......@@ -3967,25 +3967,20 @@ class ForFromStatNode(LoopNode, StatNode):
decop = "%s=%s" % (decop[0], step)
loopvar_name = self.loopvar_node.result()
if from_range:
temp_range_bound = code.funcstate.allocate_temp(self.bound2.type, manage_ref=False)
code.putln("%s = %s;" % (temp_range_bound, self.bound2.result()))
range_bound = code.funcstate.allocate_temp(self.bound2.type, manage_ref=False)
code.putln("%s = %s;" % (range_bound, self.bound2.result()))
# Skip the loop entirely (and avoid assigning to the loopvar) if
# the loop is empty:
code.putln("if (%s%s %s %s) {" % (
self.bound1.result(), offset, self.relation2, temp_range_bound
self.bound1.result(), offset, self.relation2, range_bound
))
code.putln(
"for (%s = %s%s; %s %s %s; %s%s) {" % (
loopvar_name,
self.bound1.result(), offset,
loopvar_name, self.relation2, temp_range_bound,
loopvar_name, incop))
else:
range_bound = self.bound2.result()
code.putln(
"for (%s = %s%s; %s %s %s; %s%s) {" % (
loopvar_name,
self.bound1.result(), offset,
loopvar_name, self.relation2, self.bound2.result(),
loopvar_name, self.relation2, range_bound,
loopvar_name, incop))
if self.py_loopvar_node:
self.py_loopvar_node.generate_evaluation_code(code)
......@@ -3997,7 +3992,7 @@ class ForFromStatNode(LoopNode, StatNode):
code.putln("} %s%s;" % (loopvar_name, decop))
# End the outer if statement:
code.putln("} /* end if */")
code.funcstate.release_temp(temp_range_bound)
code.funcstate.release_temp(range_bound)
else:
code.putln("}")
break_label = code.break_label
......
......@@ -53,7 +53,7 @@ cdef int g():
return 3
def f():
cdef int i
cdef int i = -1
for i in range(g()):
print i
print i
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment