public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "dominiq at lps dot ens dot fr" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libfortran/32841] [4.3 regression] HUGE(1.0d0) output as +Infinity on ppc-darwin8
Date: Fri, 27 Jul 2007 19:34:00 -0000	[thread overview]
Message-ID: <20070727193435.27635.qmail@sourceware.org> (raw)
In-Reply-To: <bug-32841-12313@http.gcc.gnu.org/bugzilla/>



------- Comment #19 from dominiq at lps dot ens dot fr  2007-07-27 19:34 -------
Subject: Re:  [4.3 regression] HUGE(1.0d0) output as
 +Infinity on ppc-darwin8

> Hum, I don't see anything in rev. 123623
> (http://gcc.gnu.org/viewcvs?view=rev&revision=123623) that looks too
> suspicious. What would need to be done now, in my opinion, is to:
>  1. check that rev. 123622 passes,
>  ...

I cannot say that I am fond of this brute force approach!-(it has to go too far
in the past to look practical). Before that I'ld like to understand what's
going wrong. In the meantime a quick and blind fix is to replace in
libgfortran/libgfortran.h the line

#if defined(HAVE_BROKEN_ISFINITE) || defined(__CYGWIN__)

by

#if defined(HAVE_BROKEN_ISFINITE) || defined(__CYGWIN__) ||
defined(whatever_for_PPC_Darwin)

This fix the failure:

FAIL: gfortran.dg/large_real_kind_2.F90  -O0  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O1  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O2  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -fomit-frame-pointer  execution
test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -fomit-frame-pointer
-funroll-loops  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -O3 -g  execution test
FAIL: gfortran.dg/large_real_kind_2.F90  -Os  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O0  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O1  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O2  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -fomit-frame-pointer 
execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -fomit-frame-pointer
-funroll-loops  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -O3 -g  execution test
FAIL: gfortran.dg/large_real_kind_form_io_2.f90  -Os  execution test
FAIL: gfortran.fortran-torture/compile/pr32417.f90,  "-O"   (internal compiler
error)

                === gfortran Summary for unix/-m32 ===

# of expected passes            19398
# of unexpected failures        17
# of expected failures          9
# of unsupported tests          58

/opt/gcc/darwin_build/gcc/testsuite/gfortran/../../gfortran  version 4.3.0
20070720 (experimental)

Now among the many things I don't understand is the following facts.

(1) the following program:

#include <stdio.h>
#include <stdlib.h>
#ifdef HAVE_MATH_H
#include <math.h>
#endif
#include <float.h>
int main ()
{
#ifdef isfinite
#ifdef LDBL_MAX
  printf("LDBL_MAX is defined\n");
  if (!isfinite(LDBL_MAX)) printf("bad long double\n");
#endif
#ifdef DBL_MAX
   printf("DBL_MAX is defined\n");
  if (!isfinite(DBL_MAX)) printf("bad double\n");
#endif
  printf("isfinite defined\n");
#endif
printf("end of test\n");
}

gives:

LDBL_MAX is defined
bad long double
DBL_MAX is defined
isfinite defined
end of test

when compiled with gcc version 4.3.0 20070720 and 

LDBL_MAX is defined
DBL_MAX is defined
isfinite defined
end of test

when compiled with gcc version 4.0.1 (Apple Computer, Inc. build 5367)
using gcc?? -DHAVE_MATH_H isfinite_p.c (gcc?? stands for the different
flavors).

By any chance is it possible that libgfortran/configure uses
the system gcc and not xgcc?  In that case that would explain
why the broken isfinite is not detected.

(2) From this it seems that isfinite(DBL_MAX) is working.
Why is it not working when writing HUGE(1.0d0)?
Does the writing use long doubles?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32841


  parent reply	other threads:[~2007-07-27 19:34 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-20 20:40 [Bug testsuite/32841] New: FAIL: gfortran.dg/edit_real_1.f90 on Darwin8 dominiq at lps dot ens dot fr
2007-07-20 20:54 ` [Bug testsuite/32841] " jvdelisle at gcc dot gnu dot org
2007-07-20 21:00 ` dominiq at lps dot ens dot fr
2007-07-20 21:01 ` jvdelisle at gcc dot gnu dot org
2007-07-20 21:20 ` dominiq at lps dot ens dot fr
2007-07-20 21:41 ` jvdelisle at gcc dot gnu dot org
2007-07-20 22:08 ` dominiq at lps dot ens dot fr
2007-07-20 22:21 ` jvdelisle at gcc dot gnu dot org
2007-07-20 22:28 ` dominiq at lps dot ens dot fr
2007-07-23 14:53 ` dominiq at lps dot ens dot fr
2007-07-23 15:03 ` dominiq at lps dot ens dot fr
2007-07-24  9:31 ` [Bug libfortran/32841] [4.3 regression libfortran] HUGE(1.0d0) is written a +Infinity " dominiq at lps dot ens dot fr
2007-07-25  4:45 ` [Bug libfortran/32841] [4.3 regression] " jvdelisle at gcc dot gnu dot org
2007-07-25  5:28 ` jvdelisle at gcc dot gnu dot org
2007-07-25  6:38 ` dominiq at lps dot ens dot fr
2007-07-25  6:41 ` dominiq at lps dot ens dot fr
2007-07-25 22:39 ` jvdelisle at gcc dot gnu dot org
2007-07-27  5:56 ` dominiq at lps dot ens dot fr
2007-07-27  6:50 ` [Bug libfortran/32841] [4.3 regression] HUGE(1.0d0) output as +Infinity on ppc-darwin8 fxcoudert at gcc dot gnu dot org
2007-07-27 19:34 ` dominiq at lps dot ens dot fr [this message]
2007-07-27 20:41 ` jvdelisle at gcc dot gnu dot org
2007-07-27 21:43 ` dominiq at lps dot ens dot fr
2007-07-27 23:46 ` fxcoudert at gcc dot gnu dot org
2007-08-31  1:15 ` pinskia at gcc dot gnu dot org
2007-09-05  1:30 ` mmitchel at gcc dot gnu dot org
2007-09-29 23:15 ` [Bug libfortran/32841] [4.3 regression] HUGE(1.0_16) " fxcoudert at gcc dot gnu dot org
2007-09-29 23:20 ` fxcoudert at gcc dot gnu dot org
2008-01-17 11:25 ` [Bug libfortran/32841] [4.3 regression] HUGE(1.0_16) output as +Infinity on ppc-darwin8 (gfortran.dg/large_real_kind_2.F90) burnus at gcc dot gnu dot org
2008-01-25 15:46 ` dominiq at lps dot ens dot fr
2008-02-21 13:50 ` [Bug libfortran/32841] [4.3/4.4 " fxcoudert at gcc dot gnu dot org
2008-02-24 12:00 ` fxcoudert at gcc dot gnu dot org
2008-02-24 12:03 ` fxcoudert at gcc dot gnu dot org
2008-02-24 12:10 ` fxcoudert at gcc dot gnu dot org
2008-02-25 13:47 ` dominiq at lps dot ens dot fr
2008-03-12 10:36 ` fxcoudert at gcc dot gnu dot org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070727193435.27635.qmail@sourceware.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).