summaryrefslogtreecommitdiff
path: root/libgfortran/generated/pow_i16_i16.c
diff options
context:
space:
mode:
authorThomas Koenig <Thomas.Koenig@online.de>2007-03-04 08:03:34 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2007-03-04 08:03:34 +0000
commit3d1f465aff3484eafd4e10e38bc7f7331a43d0dd (patch)
treea61d8416540e00b4c26389a23d6836b40ab750f5 /libgfortran/generated/pow_i16_i16.c
parentdda10672f1a0f505dd6f8133a5483b8ee846f233 (diff)
re PR fortran/30981 ([4.1 only] a ** exp fails for integer exponents if exp is "-huge()-1" (endless loop))
2007-03-04 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/30981 * m4/pow_m4: Use appropriate unsigned int type for u. * generated/pow_c10_i16.c: Regenerated. * generated/pow_c10_i4.c: Regenerated. * generated/pow_c10_i8.c: Regenerated. * generated/pow_c16_i16.c: Regenerated. * generated/pow_c16_i4.c: Regenerated. * generated/pow_c16_i8.c: Regenerated. * generated/pow_c4_i16.c: Regenerated. * generated/pow_c4_i4.c: Regenerated. * generated/pow_c4_i8.c: Regenerated. * generated/pow_c8_i16.c: Regenerated. * generated/pow_c8_i4.c: Regenerated. * generated/pow_c8_i8.c: Regenerated. * generated/pow_i16_i16.c: Regenerated. * generated/pow_i16_i4.c: Regenerated. * generated/pow_i16_i8.c: Regenerated. * generated/pow_i4_i16.c: Regenerated. * generated/pow_i4_i4.c: Regenerated. * generated/pow_i4_i8.c: Regenerated. * generated/pow_i8_i16.c: Regenerated. * generated/pow_i8_i4.c: Regenerated. * generated/pow_i8_i8.c: Regenerated. * generated/pow_r10_i16.c: Regenerated. * generated/pow_r10_i4.c: Regenerated. * generated/pow_r10_i8.c: Regenerated. * generated/pow_r16_i16.c: Regenerated. * generated/pow_r16_i4.c: Regenerated. * generated/pow_r16_i8.c: Regenerated. * generated/pow_r4_i16.c: Regenerated. * generated/pow_r4_i4.c: Regenerated. * generated/pow_r4_i8.c: Regenerated. * generated/pow_r8_i16.c: Regenerated. * generated/pow_r8_i4.c: Regenerated. * generated/pow_r8_i8.c: Regenerated. 2007-03-04 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/30981 * gfortran.dg/integer_exponentiation_1.f90: New test. From-SVN: r122522
Diffstat (limited to 'libgfortran/generated/pow_i16_i16.c')
-rw-r--r--libgfortran/generated/pow_i16_i16.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libgfortran/generated/pow_i16_i16.c b/libgfortran/generated/pow_i16_i16.c
index eda2fb6dc7c..b665f5ea2b9 100644
--- a/libgfortran/generated/pow_i16_i16.c
+++ b/libgfortran/generated/pow_i16_i16.c
@@ -45,7 +45,8 @@ GFC_INTEGER_16
pow_i16_i16 (GFC_INTEGER_16 a, GFC_INTEGER_16 b)
{
GFC_INTEGER_16 pow, x;
- GFC_INTEGER_16 n, u;
+ GFC_INTEGER_16 n;
+ GFC_UINTEGER_16 u;
n = b;
x = a;
@@ -60,7 +61,10 @@ pow_i16_i16 (GFC_INTEGER_16 a, GFC_INTEGER_16 b)
return (n & 1) ? -1 : 1;
return (x == 0) ? 1 / x : 0;
}
- u = n;
+ else
+ {
+ u = n;
+ }
for (;;)
{
if (u & 1)