Commit 9c10cc5c authored by Stefan Behnel's avatar Stefan Behnel

extract C macro into utility code file

parent ec7f7d31
...@@ -9839,7 +9839,7 @@ class DivNode(NumBinopNode): ...@@ -9839,7 +9839,7 @@ class DivNode(NumBinopNode):
code.putln(code.error_goto(self.pos)) code.putln(code.error_goto(self.pos))
code.putln("}") code.putln("}")
if self.type.is_int and self.type.signed and self.operator != '%': if self.type.is_int and self.type.signed and self.operator != '%':
code.globalstate.use_utility_code(division_overflow_test_code) code.globalstate.use_utility_code(UtilityCode.load_cached("UnaryNegOverflows", "Overflow.c"))
if self.operand2.type.signed == 2: if self.operand2.type.signed == 2:
# explicitly signed, no runtime check needed # explicitly signed, no runtime check needed
minus1_check = 'unlikely(%s == -1)' % self.operand2.result() minus1_check = 'unlikely(%s == -1)' % self.operand2.result()
...@@ -11903,10 +11903,3 @@ static int __Pyx_cdivision_warning(const char *filename, int lineno) { ...@@ -11903,10 +11903,3 @@ static int __Pyx_cdivision_warning(const char *filename, int lineno) {
#endif #endif
} }
""") """)
# from intobject.c
division_overflow_test_code = UtilityCode(
proto="""
#define UNARY_NEG_WOULD_OVERFLOW(x) \
(((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))
""")
...@@ -282,3 +282,10 @@ static CYTHON_INLINE {{TYPE}} __Pyx_lshift_{{NAME}}_checking_overflow({{TYPE}} a ...@@ -282,3 +282,10 @@ static CYTHON_INLINE {{TYPE}} __Pyx_lshift_{{NAME}}_checking_overflow({{TYPE}} a
} }
#define __Pyx_lshift_const_{{NAME}}_checking_overflow __Pyx_lshift_{{NAME}}_checking_overflow #define __Pyx_lshift_const_{{NAME}}_checking_overflow __Pyx_lshift_{{NAME}}_checking_overflow
/////////////// UnaryNegOverflows.proto ///////////////
//FIXME: shouldn't the macro name be prefixed by "__Pyx_" ? Too late now, I guess...
// from intobject.c
#define UNARY_NEG_WOULD_OVERFLOW(x) \
(((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))
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