From 007912416ec868b2a0a47812cb4d26c7a27574b5 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 30 Aug 2012 16:45:47 -0400 Subject: [PATCH] Make sure nothing breaks sign assumptions in codegen of floor_div. --- loopy/codegen/expression.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/loopy/codegen/expression.py b/loopy/codegen/expression.py index 63b16be44..7305498c5 100644 --- a/loopy/codegen/expression.py +++ b/loopy/codegen/expression.py @@ -330,12 +330,12 @@ class LoopyCCodeMapper(RecursiveMapper): if den_nonneg: if num_nonneg: - return self.parenthesize_if_needed( - "%s / %s" % ( + # parenthesize to avoid negative signs being dragged in from the + # outside by associativity + return "(%s / %s)" % ( self.rec(expr.numerator, PREC_PRODUCT, type_context), # analogous to ^{-1} - self.rec(expr.denominator, PREC_POWER, type_context)), - enclosing_prec, PREC_PRODUCT) + self.rec(expr.denominator, PREC_POWER, type_context)) else: seen_func("int_floor_div_pos_b") return ("int_floor_div_pos_b(%s, %s)" -- GitLab