2004-06-08 Toon Moene * trans-expr.c (gfc_conv_cst_int_power): Compute x**(-n) by converting it to (1/x)**n instead of 1/x**n. *** trans-expr.c.orig Sat Jun 5 13:45:07 2004 --- trans-expr.c Sat Jun 5 13:48:38 2004 *************** gfc_conv_cst_int_power (gfc_se * se, tre *** 526,538 **** memset (vartmp, 0, sizeof (vartmp)); vartmp[1] = lhs; - - se->expr = gfc_conv_powi (se, n, vartmp); if (sgn == -1) { tmp = gfc_build_const (type, integer_one_node); ! se->expr = build (RDIV_EXPR, type, tmp, se->expr); } return 1; } --- 526,539 ---- memset (vartmp, 0, sizeof (vartmp)); vartmp[1] = lhs; if (sgn == -1) { tmp = gfc_build_const (type, integer_one_node); ! vartmp[1] = build (RDIV_EXPR, type, tmp, vartmp[1]); } + + se->expr = gfc_conv_powi (se, n, vartmp); + return 1; }