[Bug libfortran/45165] New: unix.c:fallback_access() leaks file descriptors

2010-08-02 Thread jb at gcc dot gnu dot org
fd's are opened but never closed.


-- 
   Summary: unix.c:fallback_access() leaks file descriptors
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jb at gcc dot gnu dot org


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



[Bug fortran/44698] I/O: FLUSH does not actually flush the buffer?

2010-06-28 Thread jb at gcc dot gnu dot org


--- Comment #2 from jb at gcc dot gnu dot org  2010-06-28 17:27 ---
(In reply to comment #0)
 Question 1: Why does gfortran always use stat. Wouldn't it be better to use
 for open files:
   save = ftell(s)
   seek(s, 0, SEEK_END)
   size = ftell(s)
   seek (s, save, SEEK_SET

Yes, this would work, and we actually already have an implementation for this
(see unix.c:file_length() ), and it might be better because one doesn't need to
flush the buffer which one does need to do in order to get correct size results
from stat(). That being said, I don't think inquiring for file size is such a
common operation that flushing the buffers when this happens is an issue to
worry about.

 Question 2: I fail to see how FLUSH actually works. It seems to work most of
 the time, but I probably miss something. I somehow had expected to see a call
 to fflush - but I only see this for STDIN/STDOUT/STDERR. For the others, I
 find:
 
   raw_flush  ==  return 0;
   buf_flush: Some action, including lseek and raw_write (= unistd.h's write)
 
 The function is called via sflush. And the FLUSH statement is file_pos.c's
 st_flush:
 
   library_start (fpp-common);
   u = find_unit (fpp-common.unit);
   if (u != NULL)
 {
   if (u-flags.form == FORM_FORMATTED)
 fbuf_flush (u, u-mode);
   sflush (u-s);
   unlock_unit (u);
 } [...]
   library_end ();
 
 Thus: I fail to see any fflush call for non-std(out/err/in) units. Did I miss
 something?

See unix.c:buf_flush(). Called via the sflush() inline function/function
pointer thingy. libgfortran does not use C stdio
(fread/fwrite/fflush/fseek/...), but rather the lower level unbuffered POSIX IO
(read/write/lseek), with its own buffering implementation in
libgfortran/io/unix.c, see the buf_* functions.

I suspect the fflush() calls are there so that programs which mix Fortran and C
I/O to stdio/our/err work correctly (or well, hopefully at least better). But
the fflush() calls are not needed for pure gfortran IO per se.

As to the original issue, I have no idea why it fails on MinGW, and I don't
have a windows installation to test on either.


-- 


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



[Bug middle-end/31750] Suboptimal builtin_memset on x86 with SSE

2010-04-30 Thread jb at gcc dot gnu dot org


--- Comment #4 from jb at gcc dot gnu dot org  2010-04-30 18:02 ---
Some more experimentation, on different hardware, reveals that the relative
performance of rep stos vs. loop depends heavily on the size of the object to
set, the optimization options (loop unrolling etc.), and presumably on the
hardware as well. The nice thing about rep stos, is at least it's short, and
in principle in the future hw manufacturers could tune the microcode to provide
an optimal implementation.

As I have no time to set up a comprehensive benchmark that would be required if
one were to make changes to the current implementation (presumably, given the
importance of memset() others have already done it), closing this as wontfix.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug fortran/42958] Weird temporary array allocation

2010-04-28 Thread jb at gcc dot gnu dot org


--- Comment #21 from jb at gcc dot gnu dot org  2010-04-28 15:43 ---
(In reply to comment #19)
 (In reply to comment #18)
   3) for the same reason you can also drop the + 1 in computing the 
  allocation
  size which is currently (ubound - lbound + 1) * 4
 
 Sorry, but isn't +1 needed because bounds are inclusive?
 

Yes.

As an aside, for the 4.6 array descriptor update, there has been some
discussion to move from the current (lbound, ubound, stride) triplet for every
dimension to (lbound, stride, extent). Which would change these kinds of
expressions.


-- 


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



[Bug fortran/40539] Inversion of logical function compiled with ifort not correct.

2010-04-25 Thread jb at gcc dot gnu dot org


--- Comment #13 from jb at gcc dot gnu dot org  2010-04-25 19:01 ---
Subject: Bug 40539

Author: jb
Date: Sun Apr 25 19:01:06 2010
New Revision: 158707

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158707
Log:
PR fortran/40539 Document LOGICAL representation

Modified:
branches/gcc-4_5-branch/gcc/fortran/ChangeLog
branches/gcc-4_5-branch/gcc/fortran/gfortran.texi


-- 


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



[Bug fortran/40539] Inversion of logical function compiled with ifort not correct.

2010-04-25 Thread jb at gcc dot gnu dot org


--- Comment #14 from jb at gcc dot gnu dot org  2010-04-25 19:04 ---
The GFortran behavior is now documented on 4.4, 4.5, and trunk. Closing as
fixed.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


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



[Bug fortran/40539] Inversion of logical function compiled with ifort not correct.

2010-04-07 Thread jb at gcc dot gnu dot org


--- Comment #11 from jb at gcc dot gnu dot org  2010-04-07 18:01 ---
Subject: Bug 40539

Author: jb
Date: Wed Apr  7 18:01:24 2010
New Revision: 158080

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158080
Log:
PR fortran/40539 Document LOGICAL representation

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/gfortran.texi


-- 


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



[Bug fortran/40539] Inversion of logical function compiled with ifort not correct.

2010-04-07 Thread jb at gcc dot gnu dot org


--- Comment #12 from jb at gcc dot gnu dot org  2010-04-07 18:08 ---
Subject: Bug 40539

Author: jb
Date: Wed Apr  7 18:07:48 2010
New Revision: 158081

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=158081
Log:
PR fortran/40539 Document LOGICAL representation

Modified:
branches/gcc-4_4-branch/gcc/fortran/ChangeLog
branches/gcc-4_4-branch/gcc/fortran/gfortran.texi


-- 


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



[Bug fortran/40539] Inversion of logical function compiled with ifort not correct.

2010-04-04 Thread jb at gcc dot gnu dot org


--- Comment #10 from jb at gcc dot gnu dot org  2010-04-04 10:56 ---
I've been thinking a bit about this issue. Some observations

- There are a lot of compilers, and many ways of representing logicals. Being
compatible with some or all of them is, IMO, a stillborn idea. And even if we'd
solve the logical issue, there are other more or less subtle issues as well. To
the extent that robust interoperability is desired, the solution is to use
ISO_C_BINDING. 

- OTOH, there is a good case to be made for being compatible with C99 _Bool.
That means we can handle LOGICAL and LOGICAL(C_BOOL) identically, we can use
the middle-end logical type as-is etc. However, I believe we have already
accomplished this. As Tobias already noted, as the compiler can assume that the
value is either 0 or 1, it can optimize based on that, and it seems this is the
cause of this problem with MKL. As Fortran, contrary to C, does not allow
integers to be used as logical values, in principle we never need to worry
about the case where the integer value of a logical variable is neither 0 nor
1.

- Doing logical comparison C-style where /= 0 is equivalent to true might be
used for non-standard code playing tricks with transfer or equivalence, or for
C code calling Fortran passing an integer for a logical argument (essentially
the same as equivalencing integer and logical). Is this case important enough
to worry about? I doubt it, but OTOH I don't think the performance difference
is measurable anyways. At least on x86, a bit test instruction is no less
expensive (see

http://www.agner.org/optimize/instruction_tables.pdf

) than a normal comparison, and in fact 

http://www.agner.org/optimize/optimizing_assembly.pdf

recommends to avoid the bit test instructions and instead using XOR, TEST etc.
The only place where I believe there is a difference is the negation (.NOT.).
If we assume the value is either 0 or 1, a xor instruction (1 cycle on current
processors) is enough. If, OTOH, we do the /= 0 test, we need a TEST or CMP
instruction (1 cycle) followed by a SET (1 cycle). So we lose 1 cycle; I have a
hard time imagining a real application where this makes any difference.


In conclusion, IMHO, if gfortran current behavior is compatible with C99 _Bool,
and thus LOGICAL and LOGICAL(C_BOOL) are equivalent, this PR should be closed
as WONTFIX. If not, we should fix gfortran to follow C99 behavior. In either
case, there should be some documentation specifying the internal representation
of LOGICALs


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org
   Last reconfirmed|-00-00 00:00:00 |2010-04-04 10:56:20
   date||


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2010-04-01 08:55 ---
(In reply to comment #7)
 I can confirm that the patch works for both the (a) and the * case.

Thanks for testing. I'll commit the patch to 4.5 tonight.

 In the code, there is still some size_t reference, should 
 probably be gfc_offset as well:
 
if (u == NULL)
  return ((size_t) -1);
 
 Not that it would matter, though.

Yeah, it won't make any difference. The real bug here is using size_t for the
return value, there is PR39654 for that.

(And, of course, (size_t) -1 is some very large value since size_t is unsigned,
and not -1 which is the correct behavior).


-- 


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #9 from jb at gcc dot gnu dot org  2010-04-01 16:23 ---
Subject: Bug 43605

Author: jb
Date: Thu Apr  1 16:22:57 2010
New Revision: 157914

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157914
Log:
PR libfortran/43605 Fix FTELL for formatted files

Added:
trunk/gcc/testsuite/gfortran.dg/ftell_3.f90
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/intrinsics.c


-- 


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #10 from jb at gcc dot gnu dot org  2010-04-01 16:31 ---
Subject: Bug 43605

Author: jb
Date: Thu Apr  1 16:31:01 2010
New Revision: 157915

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157915
Log:
PR libfortran/43605 FTELL incorrect for formatted files.

Added:
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/ftell_3.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/libgfortran/ChangeLog
branches/gcc-4_4-branch/libgfortran/io/intrinsics.c


-- 


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #11 from jb at gcc dot gnu dot org  2010-04-01 16:34 ---
Fixed, closing.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #14 from jb at gcc dot gnu dot org  2010-04-01 19:45 ---
(In reply to comment #13)
 (In reply to comment #12)
  
 0
   '123456'
 7
   'D'
   113
  
  I would expect '789' and 10. Am I wrong?
  
 
 On i686 I get with trunk rev.157914:
 
0
  '123456'
7
  '789'
   11
 
 
 I get the same result with ifort 11.1 and Sunstudio 12.1
 when I replace call ftell(10,i) by i=ftell(10).

Fascinating. On x86_64-unknown-linux-gnu with 4.5 r157911 I get

   0
 '123456'   
  99
 '789'  
  99

With r157914 I get

   0
 '123456'
   7
 'D'
 113

I.e. same as Dominique. The correct result, I believe, is

   0
 '123456'
   7
 '789'
  11

which is what I get with 4.1.2 and 4.4.0.

Anyways, thanks for the bugreports guys, but since trunk freezes in 1h15min, a
fix for this won't make 4.5.0.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #16 from jb at gcc dot gnu dot org  2010-04-01 20:27 ---
Patch, take 2: http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00072.html


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/gcc-  |http://gcc.gnu.org/ml/gcc-
   |patches/2010-   |patches/2010-
   |03/msg01523.html|04/msg00072.html


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #19 from jb at gcc dot gnu dot org  2010-04-01 20:52 ---
Subject: Bug 43605

Author: jb
Date: Thu Apr  1 20:51:45 2010
New Revision: 157932

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157932
Log:
PR libfortran/43605 FTELL intrinsic, take 2.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/ftell_3.f90
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/intrinsics.c


-- 


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #20 from jb at gcc dot gnu dot org  2010-04-01 20:59 ---
Subject: Bug 43605

Author: jb
Date: Thu Apr  1 20:59:15 2010
New Revision: 157933

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157933
Log:
PR libfortran/43605 FTELL intrinsic, take 2.

Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/ftell_3.f90
branches/gcc-4_4-branch/libgfortran/ChangeLog
branches/gcc-4_4-branch/libgfortran/io/intrinsics.c


-- 


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-04-01 Thread jb at gcc dot gnu dot org


--- Comment #21 from jb at gcc dot gnu dot org  2010-04-01 21:11 ---
Well, thanks to the quick review by Steve Kargl, it seems I proved myself wrong
and I was able to commit to 4.5 with 8 minutes to spare before the freeze.

Closing as fixed, again.

(If anyone wants glory points for finding bugs, a quick look at the code
suggests similar offset bugs could be found by exercising the FGET(C), FPUT(C),
and FSEEK intrinsics).


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-03-31 Thread jb at gcc dot gnu dot org


--- Comment #3 from jb at gcc dot gnu dot org  2010-03-31 15:38 ---
Assigning to myself. This is probably due to ftell not taking into account
fbuf.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-03-31 14:27:13 |2010-03-31 15:38:45
   date||


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



[Bug fortran/43605] [4.4/4.5 Regression] wrong results with ftell

2010-03-31 Thread jb at gcc dot gnu dot org


--- Comment #5 from jb at gcc dot gnu dot org  2010-03-31 18:42 ---
Patch: http://gcc.gnu.org/ml/gcc-patches/2010-03/msg01523.html


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2010-
   ||03/msg01523.html


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



[Bug target/43481] huge object files generated for un-initialized data

2010-03-22 Thread jb at gcc dot gnu dot org


--- Comment #3 from jb at gcc dot gnu dot org  2010-03-22 16:51 ---
Seems to be a target bug, nothing to do with the Fortran frontend. 

Also, unless turley has a copyright assignment on file with the FSF (didn't
find him/her in the MAINTAINERS file), the patch unfortunately cannot be
accepted.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|fortran |target


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



[Bug libfortran/42420] libgfortran fails to open large files on MINGW32

2010-01-05 Thread jb at gcc dot gnu dot org


--- Comment #9 from jb at gcc dot gnu dot org  2010-01-05 19:14 ---
Closing as fixed.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libfortran/42420] libgfortran fails to open large files on MINGW32

2010-01-03 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2010-01-03 18:09 ---
Subject: Bug 42420

Author: jb
Date: Sun Jan  3 18:09:37 2010
New Revision: 155593

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=155593
Log:
PR libfortran/42420 Large file capable stat for MingW

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/unix.c


-- 


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



[Bug libfortran/42420] libgfortran fails to open large files on MINGW32

2010-01-02 Thread jb at gcc dot gnu dot org


--- Comment #7 from jb at gcc dot gnu dot org  2010-01-02 21:39 ---
Patch: http://gcc.gnu.org/ml/gcc-patches/2010-01/msg00083.html


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2010-
   ||01/msg00083.html
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-12-18 08:51:37 |2010-01-02 21:39:09
   date||


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



[Bug libfortran/42420] libgfortran fails to open large files on MINGW32

2009-12-20 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-12-20 10:23 ---
As such the patch seems ok, however I'd prefer to avoid cluttering up the logic
with ifdefs, and secondly, we should stick to one kind of stat struct
everywhere for consistency's sake. E.g. something like

diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
index 07aa4d9..531f6ec 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -42,13 +42,17 @@ see the files COPYING3 and COPYING.RUNTIME respectively. 
If

 /* For mingw, we don't identify files by their inode number, but by a
64-bit identifier created from a BY_HANDLE_FILE_INFORMATION. */
-#if defined(__MINGW32__)  !HAVE_WORKING_STAT
+#ifdef __MINGW32__

 #define WIN32_LEAN_AND_MEAN
 #include windows.h

 #define lseek _lseeki64
+#define fstat _fstati64
+#define stat _stati64
+typedef struct _stati64 gfstat_t

+#ifndef HAVE_WORKING_STAT
 static uint64_t
 id_from_handle (HANDLE hFile)
 {
@@ -91,6 +95,9 @@ id_from_fd (const int fd)
 }

 #endif
+#else
+typedef struct stat gfstat_t
+#endif

 #ifndef PATH_MAX
 #define PATH_MAX 1024
@@ -781,7 +788,7 @@ open_internal (char *base, int length, gfc_offset offset)
 static stream *
 fd_to_stream (int fd, int prot)
 {
-  struct stat statbuf;
+  gfstat_t statbuf;
   unix_stream *s;

   s = get_mem (sizeof (unix_stream));
@@ -1220,9 +1227,9 @@ int
 compare_file_filename (gfc_unit *u, const char *name, int len)
 {
   char path[PATH_MAX + 1];
-  struct stat st1;
+  gfstat_t st1;
 #ifdef HAVE_WORKING_STAT
-  struct stat st2;
+  gfstat_t st2;
 #else
 # ifdef __MINGW32__
   uint64_t id1, id2;
@@ -1261,7 +1268,7 @@ compare_file_filename (gfc_unit *u, const char *name, int 


 #ifdef HAVE_WORKING_STAT
-# define FIND_FILE0_DECL struct stat *st
+# define FIND_FILE0_DECL gfstat_t *st
 # define FIND_FILE0_ARGS st
 #else
 # define FIND_FILE0_DECL uint64_t id, const char *file, gfc_charlen_type
file_l
@@ -1318,7 +1325,7 @@ gfc_unit *
 find_file (const char *file, gfc_charlen_type file_len)
 {
   char path[PATH_MAX + 1];
-  struct stat st[2];
+  gfstat_t st[2];
   gfc_unit *u;
 #if defined(__MINGW32__)  !HAVE_WORKING_STAT
   uint64_t id = 0ULL;
@@ -1455,7 +1462,7 @@ int
 file_exists (const char *file, gfc_charlen_type file_len)
 {
   char path[PATH_MAX + 1];
-  struct stat statbuf;
+  gfstat_t statbuf;

   if (unpack_filename (path, file, file_len))
 return 0;
@@ -1478,7 +1485,7 @@ const char *
 inquire_sequential (const char *string, int len)
 {
   char path[PATH_MAX + 1];
-  struct stat statbuf;
+  gfstat_t statbuf;

   if (string == NULL ||
   unpack_filename (path, string, len) || stat (path, statbuf)  0)
@@ -1502,7 +1509,7 @@ const char *
 inquire_direct (const char *string, int len)
 {
   char path[PATH_MAX + 1];
-  struct stat statbuf;
+  gfstat_t statbuf;

   if (string == NULL ||
   unpack_filename (path, string, len) || stat (path, statbuf)  0)
@@ -1526,7 +1533,7 @@ const char *
 inquire_formatted (const char *string, int len)
 {
   char path[PATH_MAX + 1];
-  struct stat statbuf;
+  gfstat_t statbuf;

   if (string == NULL ||
   unpack_filename (path, string, len) || stat (path, statbuf)  0)


This is completely untested.

And, as a general observation, if mingw is ever going to be a tier-1 target for
gfortran, we need one or more maintainers who use and care about gfortran on
windows. So far all the maintainers are, to the best of my knowledge, Linux or
FreeBSD users, and any mingw support is, at best, an afterthought. Same goes
for OS X, FWIW.


-- 


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



[Bug fortran/28484] F2003: system_clock with real-type count_rate does not compile

2009-12-19 Thread jb at gcc dot gnu dot org


--- Comment #12 from jb at gcc dot gnu dot org  2009-12-19 10:50 ---
Since the actual implementation of system_clock has no use for non-integer
count rates, this should be implemented by creating an integer temporary in the
frontend and then calling the existing functions.

Also, note that as of r155359 the integer(8) version of system_clock now
provides microsecond resolution. In the future, this could be improved further
by switching to using clock_gettime(CLOCK_MONOTONIC,...) which in addition to
providing better resolution also gives a monotonic clock instead of a realtime
clock that gettimeofday() gives.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org


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



[Bug fortran/42434] New: Documentation should provide advise about clock resolutions

2009-12-19 Thread jb at gcc dot gnu dot org
The gfortran documentation should advise the user about the clock resolutions
she/he might expect when calling the various clock intrinsics DATE_AND_TIME,
SYSTEM_CLOCK, and CPU_TIME.


-- 
   Summary: Documentation should provide advise about clock
resolutions
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jb at gcc dot gnu dot org


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



[Bug fortran/39654] ABI bug: FTELL intrinsic function not capable of large files

2009-12-19 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-12-19 11:03 ---
(In reply to comment #5)
 (In reply to comment #4)
  (In reply to comment #3)
 
 Gentlemen,
 
 What is the word on this? A WONTFIX?

Certainly this should be fixed, eventually. Whether it will be fixed for 4.5 or
sometime later remains to be seen. Personally, I don't think it's particularly
high priority.


-- 


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



[Bug libfortran/40812] Files 2GB are incorrectly handled on mingw

2009-12-04 Thread jb at gcc dot gnu dot org


--- Comment #18 from jb at gcc dot gnu dot org  2009-12-04 16:28 ---
Subject: Bug 40812

Author: jb
Date: Fri Dec  4 16:28:44 2009
New Revision: 154984

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154984
Log:
PR libfortran/40812 Large file support for MinGW

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/unix.c
trunk/libgfortran/io/unix.h
trunk/libgfortran/libgfortran.h


-- 


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



[Bug libfortran/40812] Files 2GB are incorrectly handled on mingw

2009-12-04 Thread jb at gcc dot gnu dot org


--- Comment #19 from jb at gcc dot gnu dot org  2009-12-04 17:02 ---
Fixed, closing.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/42131] Weird translation of DO loops

2009-12-02 Thread jb at gcc dot gnu dot org


--- Comment #28 from jb at gcc dot gnu dot org  2009-12-02 09:23 ---
Subject: Bug 42131

Author: jb
Date: Wed Dec  2 09:22:50 2009
New Revision: 154900

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154900
Log:
Typo in ChangeLog entry for PR fortran/42131

Modified:
trunk/gcc/fortran/ChangeLog


-- 


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



[Bug libfortran/40812] Files 2GB are incorrectly handled on mingw

2009-12-01 Thread jb at gcc dot gnu dot org


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
  Component|fortran |libfortran
   Last reconfirmed|2009-12-01 16:21:16 |2009-12-01 17:59:33
   date||


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



[Bug fortran/42131] Weird translation of DO loops

2009-12-01 Thread jb at gcc dot gnu dot org


--- Comment #27 from jb at gcc dot gnu dot org  2009-12-01 18:32 ---
Subject: Bug 42131

Author: jb
Date: Tue Dec  1 18:32:37 2009
New Revision: 154876

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154876
Log:
PR fortran/42131 Sign test using ternary operator

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-stmt.c


-- 


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



[Bug libfortran/40812] Files 2GB are incorrectly handled on mingw

2009-12-01 Thread jb at gcc dot gnu dot org


--- Comment #16 from jb at gcc dot gnu dot org  2009-12-01 18:39 ---
Patch


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2009-
   ||12/msg00081.html


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



[Bug libfortran/40812] Files 2GB are incorrectly handled on mingw

2009-12-01 Thread jb at gcc dot gnu dot org


--- Comment #17 from jb at gcc dot gnu dot org  2009-12-01 18:58 ---
Updated patch: http://gcc.gnu.org/ml/fortran/2009-12/msg00017.html


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/gcc-  |http://gcc.gnu.org/ml/fortra
   |patches/2009-   |n/2009-12/msg00017.html
   |12/msg00081.html|


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



[Bug fortran/41860] -finit-local-XXX clobbers -fno-automatic

2009-11-23 Thread jb at gcc dot gnu dot org


--- Comment #2 from jb at gcc dot gnu dot org  2009-11-23 22:01 ---
Closing as fixed, as no complaints about the committed patch have surfaced.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/41219] libgfortran build warnings

2009-10-30 Thread jb at gcc dot gnu dot org


--- Comment #21 from jb at gcc dot gnu dot org  2009-10-30 22:37 ---
Subject: Bug 41219

Author: jb
Date: Fri Oct 30 22:37:47 2009
New Revision: 153769

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=153769
Log:
PR libfortran/41219 Fix build warnings

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/intrinsics/iso_c_binding.c
trunk/libgfortran/intrinsics/unpack_generic.c


-- 


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



[Bug fortran/25829] [F2003] Asynchronous IO support

2009-10-28 Thread jb at gcc dot gnu dot org


--- Comment #13 from jb at gcc dot gnu dot org  2009-10-28 22:03 ---
Reassigning to myself, I have a plan how to proceed with supporting proper
async I/O in the library.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|jvdelisle at gcc dot gnu dot|jb at gcc dot gnu dot org
   |org |


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



[Bug fortran/41860] New: -finit-local-XXX clobbers -fno-automatic

2009-10-28 Thread jb at gcc dot gnu dot org
See the thread at

http://gcc.gnu.org/ml/fortran/2009-10/msg00217.html


-- 
   Summary: -finit-local-XXX clobbers -fno-automatic
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jb at gcc dot gnu dot org


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



[Bug fortran/41860] -finit-local-XXX clobbers -fno-automatic

2009-10-28 Thread jb at gcc dot gnu dot org


--- Comment #1 from jb at gcc dot gnu dot org  2009-10-28 23:25 ---
Subject: Bug 41860

Author: jb
Date: Wed Oct 28 23:25:08 2009
New Revision: 153689

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=153689
Log:
PR fortran/41860 Treat vars as save with -fno-automatic

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c


-- 


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



[Bug fortran/41860] -finit-local-XXX clobbers -fno-automatic

2009-10-28 Thread jb at gcc dot gnu dot org


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-10-28 23:07:33 |2009-10-28 23:27:33
   date||


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



[Bug fortran/41219] libgfortran build warnings

2009-09-06 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-09-06 13:55 ---
(In reply to comment #2)
 Janne, I think the warning about unix.c:750:15: warning: ‘statbuf.st_mode’ 
 may
 be used uninitialized is spurious, but can you have a look?

Yes, it's spurious, and I submitted a patch
(http://gcc.gnu.org/ml/gcc-patches/2009-09/msg00419.html), but maybe the
middle-end shouldn't warn about it anyway (see the reply by Richard Guenther).

 Jerry, there is some inconsistency regarding st_parameter_dt's saved_type.
 One finds both bt and dtype assignments, which does not make sense. Does
 one need both types in a union? Or can one consolidate them?
 
 list_read.c:  dtp-u.p.saved_type = BT_LOGICAL;
 list_read.c:  dtp-u.p.saved_type = GFC_DTYPE_UNKNOWN;
 etc.

I looked into this when I redid the lower layer I/O library, and I gave up in
exasperation. This dichotomy between BT_* and GFC_DTYPE_* extends into the
frontend, and would require lots of tedious work and an ABI change to fix.
Perhaps at the same time we change the array descriptor we could fix this too
(the descriptor also needs some form of type tag, and if we adopt the TR29113
descriptor that then also influences the type tag). I added a note about this
to http://gcc.gnu.org/wiki/LibgfortranAbiCleanup . As an additional bonus, note
that the bt enum is different in the frontend and the library, and some of the
library entry points take bt enums as arguments, which makes one one wonder how
the heck all this works.. :)

 In write_a_char4, one has:
   const char crlf[] = \r\n;
   write_default_char4 (dtp, crlf, 2, 0);
 but the second argument should be  gfc_char4_t*

Right. So what is \r\n in terms of gfc_char4_t? 


-- 


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



[Bug fortran/39667] I/O possibly unneccesary truncations

2009-08-28 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-08-28 14:48 ---
Closing as fixed


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/39667] I/O possibly unneccesary truncations

2009-08-27 Thread jb at gcc dot gnu dot org


--- Comment #5 from jb at gcc dot gnu dot org  2009-08-27 17:41 ---
Subject: Bug 39667

Author: jb
Date: Thu Aug 27 17:40:55 2009
New Revision: 151144

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=151144
Log:
PR libfortran/39667 Fix testcases to not need fd_truncate.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/f2003_io_4.f03
trunk/gcc/testsuite/gfortran.dg/fmt_cache_1.f
trunk/gcc/testsuite/gfortran.dg/fmt_exhaust.f90
trunk/gcc/testsuite/gfortran.dg/fmt_t_4.f90
trunk/gcc/testsuite/gfortran.dg/fseek.f90
trunk/gcc/testsuite/gfortran.dg/list_read_5.f90
trunk/gcc/testsuite/gfortran.dg/namelist_39.f90
trunk/gcc/testsuite/gfortran.dg/namelist_56.f90
trunk/gcc/testsuite/gfortran.dg/read_bad_advance.f90
trunk/gcc/testsuite/gfortran.dg/read_repeat.f90
trunk/gcc/testsuite/gfortran.dg/read_size_noadvance.f90
trunk/gcc/testsuite/gfortran.dg/read_x_past.f


-- 


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



[Bug fortran/39667] I/O possibly unneccesary truncations

2009-08-25 Thread jb at gcc dot gnu dot org


--- Comment #4 from jb at gcc dot gnu dot org  2009-08-25 22:17 ---
Updated patch fixing remaining fd_truncate issues with testsuite.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/fortra|http://gcc.gnu.org/ml/gcc-
   |n/2009-04/msg00199.html |patches/2009-
   ||08/msg01388.html


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



[Bug libfortran/40863] [4.5 Regression] Build failure in libgfortran

2009-08-14 Thread jb at gcc dot gnu dot org


--- Comment #12 from jb at gcc dot gnu dot org  2009-08-14 17:45 ---
Subject: Bug 40863

Author: jb
Date: Fri Aug 14 17:44:50 2009
New Revision: 150765

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=150765
Log:
PR libfortran/40863 Fix r150107 moving new symbols to C99_1.1 node

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/gfortran.map


-- 


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



[Bug fortran/39654] ABI bug: FTELL intrinsic function not capable of large files

2009-07-29 Thread jb at gcc dot gnu dot org


--- Comment #4 from jb at gcc dot gnu dot org  2009-07-29 12:46 ---
(In reply to comment #3)
 Is there a particular reason why we can not change this to off_t with 4.5.?
 

Yes, it would break the ABI. As it's such a minor issue, IMHO it can be
postponed until we need to break the ABI for other reasons (e.g. the new array
descriptor for 4.6 and so on).

If one really wanted to fix it, we could have a new symbol in the library with
the correct prototype, and 4.5 could use that and older releases of gfortran
keep using the existing one. That can be done with symbol versioning, or just
manually. But I'm not sure it's worth the bother.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu dot
   ||org


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



[Bug fortran/40714] [4.4/4.5 Regression] Fortran runtime error: Invalid argument

2009-07-17 Thread jb at gcc dot gnu dot org


--- Comment #9 from jb at gcc dot gnu dot org  2009-07-17 19:40 ---
Subject: Bug 40714

Author: jb
Date: Fri Jul 17 19:40:23 2009
New Revision: 149757

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149757
Log:
When finalizing I/O transfer, set current_record to 0 before returning.

PR libfortran/40714

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/transfer.c


-- 


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



[Bug fortran/40714] [4.4, 4.5 Regression] Fortran runtime error: Invalid argument

2009-07-15 Thread jb at gcc dot gnu dot org


--- Comment #5 from jb at gcc dot gnu dot org  2009-07-15 17:19 ---
I don't get it; for some reason bytes_left_subrecord has been set to 0, hence
the seek gets messed up.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org


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



[Bug fortran/40714] [4.4, 4.5 Regression] Fortran runtime error: Invalid argument

2009-07-15 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-07-15 21:42 ---
Ok, so the problem is that due to the EOF the first read hits, the
current_record marker is not properly reset to 0 at the end of the data
transfer, and from that it follows that stuff isn't correctly initialized at
the next I/O statement.

Trying to figure out where to properly place the reset.


-- 


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



[Bug libfortran/40330] [4.4, 4.5 Regression] incorrect IO

2009-06-10 Thread jb at gcc dot gnu dot org


--- Comment #24 from jb at gcc dot gnu dot org  2009-06-10 21:17 ---
Further reduced testcase:

program pr40330
 implicit none

 call s1()
 call s1()

contains
 subroutine s1()
   character(LEN=100) :: a
   a = (3X)
   write(*,FMT='('//trim(a)//,a,' '), ADVANCE=NO) 3
 end subroutine s1
end program pr40330

The interesting thing is, if you replace the trim(a) with trim((3X)) then it
works. Look at -fdump-tree-original to see the difference; in the second case
the format string is a constant, in the first it's not and it's deallocated,
which might be related to why we get the valgrind errors about reading from
free'd storage.


-- 


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



[Bug libfortran/40334] [4.4/4.5 Regression] changed BACKSPACE behaviour at end of file.

2009-06-09 Thread jb at gcc dot gnu dot org


--- Comment #10 from jb at gcc dot gnu dot org  2009-06-09 20:29 ---
Subject: Bug 40334

Author: jb
Date: Tue Jun  9 20:29:33 2009
New Revision: 148324

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=148324
Log:
PR libfortran/40334 backspace regression

Added:
trunk/gcc/testsuite/gfortran.dg/backspace_11.f90
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug libfortran/40330] [4.4 Regression] incorrect IO

2009-06-09 Thread jb at gcc dot gnu dot org


--- Comment #13 from jb at gcc dot gnu dot org  2009-06-09 20:56 ---
Subject: Bug 40330

Author: jb
Date: Tue Jun  9 20:55:53 2009
New Revision: 148326

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=148326
Log:
PR libfortran/40330 Use heap memory for format cache

Modified:
branches/gcc-4_4-branch/libgfortran/ChangeLog
branches/gcc-4_4-branch/libgfortran/io/format.c


-- 


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



[Bug libfortran/40330] [4.4 Regression] incorrect IO

2009-06-09 Thread jb at gcc dot gnu dot org


--- Comment #14 from jb at gcc dot gnu dot org  2009-06-09 20:57 ---
Closing as fixed.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2009-06-04 Thread jb at gcc dot gnu dot org


--- Comment #17 from jb at gcc dot gnu dot org  2009-06-04 07:40 ---
(In reply to comment #16)
 Can this PR now be closed?

Yes, I think so. There are still some remnants of ASF in internal I/O, but I
don't think it hurts. 


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug libfortran/40330] [4.4 Regression] incorrect IO

2009-06-03 Thread jb at gcc dot gnu dot org


--- Comment #7 from jb at gcc dot gnu dot org  2009-06-03 17:39 ---
Confirmed on trunk. 

This seems to be due to the format caching stuff?

The regression on the 4.4 branch would be explained by the I/O backport
(r147887).


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-06-03 17:39:10
   date||


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



[Bug libfortran/40330] [4.4 Regression] incorrect IO

2009-06-03 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2009-06-03 18:49 ---
Created an attachment (id=17949)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17949action=view)
Proposed patch

This patch seems to fix it, will formally submit as soon as it regtests.


-- 


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



[Bug libfortran/40330] [4.4 Regression] incorrect IO

2009-06-03 Thread jb at gcc dot gnu dot org


--- Comment #9 from jb at gcc dot gnu dot org  2009-06-03 19:19 ---
Proper patch submitted.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/fortra
   ||n/2009-06/msg00040.html


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



[Bug libfortran/40330] [4.4 Regression] incorrect IO

2009-06-03 Thread jb at gcc dot gnu dot org


--- Comment #10 from jb at gcc dot gnu dot org  2009-06-03 21:07 ---
Subject: Bug 40330

Author: jb
Date: Wed Jun  3 21:07:19 2009
New Revision: 148149

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=148149
Log:
PR libfortran/40330

Use heap memory for cached format strings.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/format.c


-- 


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



[Bug fortran/40318] Complex division by zero in gfortran returns wrong results

2009-06-01 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2009-06-01 14:21 ---
Whatever you do, as long as the Fortran standard is silent on this matter, can
you hide it behind some -fC99-wankery or such option and not enable it by
default, so that those of us who care less about which of (NaN, NaN) and (Inf,
Inf) is the better error indicator than the roughly factor of 4 in performance
for complex arithmetic can get on with our lives?


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org


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



[Bug libfortran/40190] DATE_AND_TIME returns GMT hour sometimes with OpenMP

2009-05-29 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-05-29 21:04 ---
Fixed on trunk as of r147985, closing as fixed.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/40270] [4.5 Regression] Revision 147883 caused many Fortran regressions

2009-05-27 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-05-27 16:15 ---
The patch in comment #5 fixes most of the issues, not all. Remaining

gfortran.dg/elemental_dependency_1.f90
gfortran.dg/parameter_unused.f90
gfortran.dg/blockdata_3.f90
gfortran.dg/vector_subscript_4.f90

elemental_dependency and vector_subscript apparently fail due to the
scan-tree-dump-times directive, the fix is probably just to update the test
cases. 

parameter_unused and blockdata_3 fail because it complains that argc and argv
are unused, even though the 003t.original shows that _gfortran_set_args is
called as it should.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org


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



[Bug fortran/40270] [4.5 Regression] Revision 147883 caused many Fortran regressions

2009-05-27 Thread jb at gcc dot gnu dot org


--- Comment #7 from jb at gcc dot gnu dot org  2009-05-27 16:42 ---
The patch below fixes the elemental_dependency_1 and vector_subscript_4
failures:

diff --git a/gcc/testsuite/gfortran.dg/elemental_dependency_1.f90
b/gcc/testsuite/gfortran.dg/elemental_dependency_1.f90
index 3e1f67b..d76fad6 100644   
--- a/gcc/testsuite/gfortran.dg/elemental_dependency_1.f90  
+++ b/gcc/testsuite/gfortran.dg/elemental_dependency_1.f90
@@ -40,14 +40,14 @@ PROGRAM main

   b = a
   CALL double((a(1:sz-1)), a(2:sz)) ! paren expression, temporary created
-! { dg-final { scan-tree-dump-times A\.17\\\[4\\\] 1 original } }
+! { dg-final { scan-tree-dump-times A\.16\\\[4\\\] 1 original } }

   IF (ANY(a /= (/ b(1), (2*b(i), i=1,sz-1) /))) CALL abort


   b = a
   CALL double(a(1:sz-1)+1, a(2:sz)) ! op expression, temporary created
-! { dg-final { scan-tree-dump-times A\.26\\\[4\\\] 1 original } }
+! { dg-final { scan-tree-dump-times A\.25\\\[4\\\] 1 original } }

   IF (ANY(a /= (/ b(1), (2*b(i)+2, i=1,sz-1) /))) CALL abort

@@ -59,7 +59,7 @@ PROGRAM main

   b = a
   CALL double(self(a(1:sz-1)), a(2:sz))  ! function expr, temporary created
-! { dg-final { scan-tree-dump-times A\.38\\\[4\\\] 1 original } }
+! { dg-final { scan-tree-dump-times A\.37\\\[4\\\] 1 original } }

   IF (ANY(a /= (/ b(1), (2*b(i), i=1,sz-1) /))) CALL abort

diff --git a/gcc/testsuite/gfortran.dg/vector_subscript_4.f90
b/gcc/testsuite/gfortran.dg/vector_subscript_4.f90
index 2044684..5c341da 100644
--- a/gcc/testsuite/gfortran.dg/vector_subscript_4.f90
+++ b/gcc/testsuite/gfortran.dg/vector_subscript_4.f90
@@ -9,5 +9,5 @@
  integer :: i(-1:1) = 1, j(3) = 1, k(3)
   k = j((/1,1,1/)+i)
   end
-! { dg-final { scan-tree-dump-times A\.3\\\[3\\\] 1 original } }
+! { dg-final { scan-tree-dump-times A\.2\\\[3\\\] 1 original } }
 ! { dg-final { cleanup-tree-dump original } }


-- 


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



[Bug fortran/39654] ABI bug: FTELL intrinsic function not capable of large files

2009-05-27 Thread jb at gcc dot gnu dot org


--- Comment #2 from jb at gcc dot gnu dot org  2009-05-27 17:44 ---
(In reply to comment #1)
 See also: http://gcc.gnu.org/wiki/LibgfortranAbiCleanup
 

Yes, I know; I added the note to the wiki page after I filed this bug. ;-)


-- 


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



[Bug fortran/40070] Some math expressions containing exponents fail on a Windows 64 build

2009-05-20 Thread jb at gcc dot gnu dot org


--- Comment #12 from jb at gcc dot gnu dot org  2009-05-20 08:37 ---
Both the mixed C/Fortran and the pure Fortran version by Dominique works as
expected for me on x86_64-linux. I.e. I get the same results as reported by
Dominique in comments #1 and #6.

This looks like a target bug.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org


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



[Bug libfortran/40190] DATE_AND_TIME returns GMT hour sometimes with OpenMP

2009-05-19 Thread jb at gcc dot gnu dot org


--- Comment #3 from jb at gcc dot gnu dot org  2009-05-19 06:42 ---
Assigning to myself.

HJL is right, we should use the _r functions if available, if not we must
protect the calls with a mutex.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-05-18 21:12:45 |2009-05-19 06:42:22
   date||


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



[Bug fortran/39872] Bounds check off by one

2009-05-15 Thread jb at gcc dot gnu dot org


--- Comment #5 from jb at gcc dot gnu dot org  2009-05-15 23:45 ---
Subject: Bug 39872

Author: jb
Date: Fri May 15 23:45:08 2009
New Revision: 147601

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=147601
Log:
Backport fix for PR libfortran/39872 from trunk.

Modified:
branches/gcc-4_4-branch/libgfortran/ChangeLog
branches/gcc-4_4-branch/libgfortran/io/transfer.c


-- 


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



[Bug fortran/39667] I/O possibly unneccesary truncations

2009-04-30 Thread jb at gcc dot gnu dot org


--- Comment #2 from jb at gcc dot gnu dot org  2009-04-30 15:12 ---
Subject: Bug 39667

Author: jb
Date: Thu Apr 30 15:12:37 2009
New Revision: 147004

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=147004
Log:
Fix PR libfortran/39667

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/advance_1.f90
trunk/gcc/testsuite/gfortran.dg/advance_4.f90
trunk/gcc/testsuite/gfortran.dg/advance_5.f90
trunk/gcc/testsuite/gfortran.dg/append_1.f90
trunk/gcc/testsuite/gfortran.dg/backslash_1.f90
trunk/gcc/testsuite/gfortran.dg/backslash_2.f90
trunk/gcc/testsuite/gfortran.dg/backslash_3.f
trunk/gcc/testsuite/gfortran.dg/backspace_10.f90
trunk/gcc/testsuite/gfortran.dg/backspace_3.f
trunk/gcc/testsuite/gfortran.dg/backspace_4.f
trunk/gcc/testsuite/gfortran.dg/backspace_5.f
trunk/gcc/testsuite/gfortran.dg/backspace_8.f
trunk/gcc/testsuite/gfortran.dg/backspace_9.f
trunk/gcc/testsuite/gfortran.dg/complex_write.f90
trunk/gcc/testsuite/gfortran.dg/convert_implied_open.f90
trunk/gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f
trunk/gcc/testsuite/gfortran.dg/dos_eol.f
trunk/gcc/testsuite/gfortran.dg/empty_format_1.f90
trunk/gcc/testsuite/gfortran.dg/endfile.f
trunk/gcc/testsuite/gfortran.dg/eof_1.f90
trunk/gcc/testsuite/gfortran.dg/eor_1.f90
trunk/gcc/testsuite/gfortran.dg/eor_handling_1.f90
trunk/gcc/testsuite/gfortran.dg/eor_handling_2.f90
trunk/gcc/testsuite/gfortran.dg/eor_handling_3.f90
trunk/gcc/testsuite/gfortran.dg/eor_handling_4.f90
trunk/gcc/testsuite/gfortran.dg/eor_handling_5.f90
trunk/gcc/testsuite/gfortran.dg/error_recovery_5.f90
trunk/gcc/testsuite/gfortran.dg/f2003_inquire_1.f03
trunk/gcc/testsuite/gfortran.dg/f2003_io_4.f03
trunk/gcc/testsuite/gfortran.dg/f2003_io_5.f03
trunk/gcc/testsuite/gfortran.dg/f2003_io_7.f03
trunk/gcc/testsuite/gfortran.dg/fgetc_1.f90
trunk/gcc/testsuite/gfortran.dg/fgetc_2.f90
trunk/gcc/testsuite/gfortran.dg/flush_1.f90
trunk/gcc/testsuite/gfortran.dg/fmt_exhaust.f90
trunk/gcc/testsuite/gfortran.dg/fmt_huge.f90
trunk/gcc/testsuite/gfortran.dg/fmt_read.f90
trunk/gcc/testsuite/gfortran.dg/fmt_t_1.f90
trunk/gcc/testsuite/gfortran.dg/fmt_t_2.f90
trunk/gcc/testsuite/gfortran.dg/fmt_t_3.f90
trunk/gcc/testsuite/gfortran.dg/fmt_t_4.f90
trunk/gcc/testsuite/gfortran.dg/fmt_t_5.f90
trunk/gcc/testsuite/gfortran.dg/fmt_t_7.f
trunk/gcc/testsuite/gfortran.dg/fseek.f90
trunk/gcc/testsuite/gfortran.dg/ftell_1.f90
trunk/gcc/testsuite/gfortran.dg/ftell_2.f90
trunk/gcc/testsuite/gfortran.dg/func_derived_3.f90
trunk/gcc/testsuite/gfortran.dg/inquire_9.f90
trunk/gcc/testsuite/gfortran.dg/iostat_1.f90
trunk/gcc/testsuite/gfortran.dg/iostat_2.f90
trunk/gcc/testsuite/gfortran.dg/list_read_1.f90
trunk/gcc/testsuite/gfortran.dg/list_read_4.f90
trunk/gcc/testsuite/gfortran.dg/list_read_5.f90
trunk/gcc/testsuite/gfortran.dg/list_read_7.f90
trunk/gcc/testsuite/gfortran.dg/list_read_8.f90
trunk/gcc/testsuite/gfortran.dg/list_read_9.f90
trunk/gcc/testsuite/gfortran.dg/namelist_13.f90
trunk/gcc/testsuite/gfortran.dg/namelist_14.f90
trunk/gcc/testsuite/gfortran.dg/namelist_15.f90
trunk/gcc/testsuite/gfortran.dg/namelist_16.f90
trunk/gcc/testsuite/gfortran.dg/namelist_17.f90
trunk/gcc/testsuite/gfortran.dg/namelist_18.f90
trunk/gcc/testsuite/gfortran.dg/namelist_19.f90
trunk/gcc/testsuite/gfortran.dg/namelist_20.f90
trunk/gcc/testsuite/gfortran.dg/namelist_24.f90
trunk/gcc/testsuite/gfortran.dg/namelist_26.f90
trunk/gcc/testsuite/gfortran.dg/namelist_27.f90
trunk/gcc/testsuite/gfortran.dg/namelist_28.f90
trunk/gcc/testsuite/gfortran.dg/namelist_37.f90
trunk/gcc/testsuite/gfortran.dg/namelist_38.f90
trunk/gcc/testsuite/gfortran.dg/namelist_39.f90
trunk/gcc/testsuite/gfortran.dg/namelist_40.f90
trunk/gcc/testsuite/gfortran.dg/namelist_43.f90
trunk/gcc/testsuite/gfortran.dg/namelist_44.f90
trunk/gcc/testsuite/gfortran.dg/namelist_45.f90
trunk/gcc/testsuite/gfortran.dg/namelist_46.f90
trunk/gcc/testsuite/gfortran.dg/namelist_47.f90
trunk/gcc/testsuite/gfortran.dg/namelist_48.f90
trunk/gcc/testsuite/gfortran.dg/namelist_49.f90
trunk/gcc/testsuite/gfortran.dg/namelist_50.f90
trunk/gcc/testsuite/gfortran.dg/namelist_51.f90
trunk/gcc/testsuite/gfortran.dg/namelist_52.f90
trunk/gcc/testsuite/gfortran.dg/namelist_56.f90
trunk/gcc/testsuite/gfortran.dg/namelist_char_only.f90
trunk/gcc/testsuite/gfortran.dg/namelist_use.f90
trunk/gcc/testsuite/gfortran.dg/namelist_use_only.f90
trunk/gcc/testsuite/gfortran.dg/noadv_size.f90
trunk/gcc/testsuite/gfortran.dg/open_access_append_1.f90
trunk/gcc/testsuite/gfortran.dg/pad_no.f90
trunk/gcc/testsuite/gfortran.dg/pr12884.f
trunk/gcc/testsuite/gfortran.dg/pr17090.f90
trunk/gcc/testsuite

[Bug fortran/39782] [4.3/4.4 Regression] IO depends on uninitialised value

2009-04-22 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2009-04-22 21:37 ---
Having a shot at backporting, assigning to myself.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-04-16 18:37:09 |2009-04-22 21:37:24
   date||


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



[Bug fortran/39782] [4.3/4.4/4.5 Regression] IO depends on uninitialised value

2009-04-18 Thread jb at gcc dot gnu dot org


--- Comment #5 from jb at gcc dot gnu dot org  2009-04-18 10:05 ---
Subject: Bug 39782

Author: jb
Date: Sat Apr 18 10:05:34 2009
New Revision: 146308

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=146308
Log:
2009-04-18  Janne Blomqvist  j...@gcc.gnu.org

PR libfortran/39782
* io/transfer.c (data_transfer_init): Don't flush before seek.
(finalize_transfer): Remove extra flush.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/transfer.c


-- 


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



[Bug fortran/31243] truncating strings longer than 2**32 characters

2009-04-17 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-04-17 22:13 ---
I'm not sure how this could be fixed in a proper way without breaking the
procedure call ABI. Gfortran follows pretty much every other Fortran compiler
in providing character length as a hidden argument of type default integer. 

In principle we could break this and make the length argument (s)size_t like
the string functions in C/C++ do, but that would probably be a major headache
for all those doing mixed C/Fortran programming the old fashioned way without
ISO_C_BINDING.

Of course, in principle one option could be to support larger strings as long
as no procedure calls are made, but that sounds pretty confusing and flaky
IMHO.

Considering that string sizes larger than 2**31 are pretty rare outside of
testcases, and IMHO not worth breaking the procedure call ABI for, the proper
resolution for this PR would be to just print out a compiler limit error
message like Thomas Koenig suggested.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org


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



[Bug fortran/39667] I/O possibly unneccesary truncations

2009-04-17 Thread jb at gcc dot gnu dot org


--- Comment #1 from jb at gcc dot gnu dot org  2009-04-17 22:18 ---
Confirmed, assigning to myself.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-04-17 22:18:55
   date||


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



[Bug c/38688] __sync_lock_test_and_set does not actually lock

2009-04-15 Thread jb at gcc dot gnu dot org


--- Comment #4 from jb at gcc dot gnu dot org  2009-04-15 19:38 ---
Subject: Bug 38688

Author: jb
Date: Wed Apr 15 19:38:32 2009
New Revision: 146134

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=146134
Log:
2009-04-15  Janne Blomqvist  j...@gcc.gnu.org

PR libfortran/38688
* io/transfer.c (finalize_transfer): Don't flush for advance='no'.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/transfer.c


-- 


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



[Bug c/38688] __sync_lock_test_and_set does not actually lock

2009-04-15 Thread jb at gcc dot gnu dot org


--- Comment #5 from jb at gcc dot gnu dot org  2009-04-15 19:42 ---
Er, sorry, wrong PR in the ChangeLog.


-- 


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



[Bug libfortran/38668] advance=no: no buffering, truncate and seek

2009-04-15 Thread jb at gcc dot gnu dot org


--- Comment #4 from jb at gcc dot gnu dot org  2009-04-15 19:46 ---
Fixed in trunk as r146134  r146135.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libfortran/39665] [4.5 Regression] Fortran IO using unaligned accesses to read/write doubles.

2009-04-13 Thread jb at gcc dot gnu dot org


--- Comment #12 from jb at gcc dot gnu dot org  2009-04-13 16:55 ---
Fixed as of r145875


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libfortran/39665] [4.5 Regression] Fortran IO using unaligned accesses to read/write doubles.

2009-04-10 Thread jb at gcc dot gnu dot org


--- Comment #11 from jb at gcc dot gnu dot org  2009-04-10 07:23 ---
Subject: Bug 39665

Author: jb
Date: Fri Apr 10 07:23:25 2009
New Revision: 145875

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=145875
Log:
2009-04-10  Janne Blomqvist  j...@gcc.gnu.org

PR libfortran/39665 libfortran/39702 libfortran/39709
* io/io.h (st_parameter_dt): Revert aligned attribute from u.p.value.
* io/list_read.c (read_complex): Read directly into user pointer.
(read_real): Likewise.
(list_formatted_read_scalar): Update read_complex and read_real calls.
(nml_read_obj): Read directly into user pointer.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/io.h
trunk/libgfortran/io/list_read.c


-- 


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



[Bug libfortran/39665] [4.5 Regression] Fortran IO using unaligned accesses to read/write doubles.

2009-04-09 Thread jb at gcc dot gnu dot org


--- Comment #10 from jb at gcc dot gnu dot org  2009-04-09 17:44 ---
Subject: Bug 39665

Author: jb
Date: Thu Apr  9 17:44:23 2009
New Revision: 145852

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=145852
Log:
2009-04-09  Janne Blomqvist  j...@gcc.gnu.org

PR fortran/39665
* io/io.h (st_parameter_dt): Add aligned attribute to u.p.value.
* io/read.c (convert_real): Add note about alignment requirements.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/io.h
trunk/libgfortran/io/read.c


-- 


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



[Bug libfortran/39702] [4.5 Regression] Unaligned access in Fortran testcases

2009-04-09 Thread jb at gcc dot gnu dot org


--- Comment #3 from jb at gcc dot gnu dot org  2009-04-09 21:14 ---
HJ,

can you check if the patch at

http://gcc.gnu.org/ml/fortran/2009-04/msg00103.html

fixes your problems? It is the alternative way of solving the problem that IMHO
was not as clean as r145852, but if that one doesn't work I suppose we'll have
to go with that one instead.


-- 


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



[Bug libfortran/39665] [4.5 Regression] Fortran IO using unaligned accesses to read/write doubles.

2009-04-08 Thread jb at gcc dot gnu dot org


--- Comment #4 from jb at gcc dot gnu dot org  2009-04-08 17:11 ---
Working on a patch, assigning to myself


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-04-06 18:16:54 |2009-04-08 17:11:22
   date||
   Target Milestone|4.5.0   |---


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



[Bug fortran/39670] dollar sign in entities is not recognized when it is first symbol

2009-04-08 Thread jb at gcc dot gnu dot org


--- Comment #16 from jb at gcc dot gnu dot org  2009-04-08 18:24 ---
Subject: Bug 39670

Author: jb
Date: Wed Apr  8 18:23:55 2009
New Revision: 145767

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=145767
Log:
2009-04-08  Janne Blomqvist  j...@gcc.gnu.org

PR fortran/39670
* invoke.texi (fdollar-ok): Fix typo.


Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/invoke.texi


-- 


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



[Bug libfortran/39665] [4.5 Regression] Fortran IO using unaligned accesses to read/write doubles.

2009-04-08 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2009-04-08 20:59 ---
(In reply to comment #5)
 In addition to the alignment problem, check out the case 10 and case 16 
 entries
 in the convert_real subroutine.  After checking to see that strtold exists,
 they actually go and call strtod instead of strtold.  This is causing some of
 my failures.  Can you roll this change into your patch too.

Huh? At least in my tree (r145761) they call strtold as they should:

#if defined(HAVE_GFC_REAL_10)  defined (HAVE_STRTOLD)
case 10:
  *((GFC_REAL_10*) dest) = strtold (buffer, NULL);
  break;
#endif

#if defined(HAVE_GFC_REAL_16)  defined (HAVE_STRTOLD)
case 16:
  *((GFC_REAL_16*) dest) = strtold (buffer, NULL);
  break;
#endif


-- 


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



[Bug libfortran/39665] [4.5 Regression] Fortran IO using unaligned accesses to read/write doubles.

2009-04-08 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2009-04-08 22:36 ---
Patch here: http://gcc.gnu.org/ml/fortran/2009-04/msg00103.html


-- 


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



[Bug fortran/39654] New: ABI bug: FTELL intrinsic function not capable of large files

2009-04-05 Thread jb at gcc dot gnu dot org
The FTELL function in libgfortran/io/intrinsics.c has the prototype

extern size_t PREFIX(ftell) (int *);

where the return value is the file position of the unit given in the int
argument. On 32-bit platforms this will not work for files  4 GB. The return
type should be GFC_IO_INT which is a typedef for off_t which is 64-bit on LFS
capable systems.


-- 
   Summary: ABI bug: FTELL intrinsic function not capable of large
files
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jb at gcc dot gnu dot org


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



[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2009-03-22 Thread jb at gcc dot gnu dot org


--- Comment #13 from jb at gcc dot gnu dot org  2009-03-22 10:51 ---
Subject: Bug 25561

Author: jb
Date: Sun Mar 22 10:51:05 2009
New Revision: 144993

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=144993
Log:
2009-03-22  Janne Blomqvist  j...@gcc.gnu.org

PR libfortran/25561 libfortran/37754
* io/io.h (struct stream): Define new stream interface function
pointers, and inline functions for accessing it.
(struct fbuf): Use int instead of size_t, remove flushed element.
(mem_alloc_w): New prototype.
(mem_alloc_r): New prototype.
(stream_at_bof): Remove prototype.
(stream_at_eof): Remove prototype.
(file_position): Remove prototype.
(flush): Remove prototype.
(stream_offset): Remove prototype.
(unit_truncate): New prototype.
(read_block_form): Change to return pointer, int* argument.
(hit_eof): New prototype.
(fbuf_init): Change prototype.
(fbuf_reset): Change prototype.
(fbuf_alloc): Change prototype.
(fbuf_flush): Change prototype.
(fbuf_seek): Change prototype.
(fbuf_read): New prototype.
(fbuf_getc_refill): New prototype.
(fbuf_getc): New inline function.
* io/fbuf.c (fbuf_init): Use int, get rid of flushed.
(fbuf_debug): New function.
(fbuf_reset): Flush, and return position offset.
(fbuf_alloc): Simplify, don't flush, just realloc.
(fbuf_flush): Make usable for read mode, salvage remaining bytes.
(fbuf_seek): New whence argument.
(fbuf_read): New function.
(fbuf_getc_refill): New function.
* io/file_pos.c (formatted_backspace): Use new stream interface.
(unformatted_backspace): Likewise.
(st_backspace): Make sure format buffer is reset, use new stream
interface, use unit_truncate.
(st_endfile): Likewise.
(st_rewind): Likewise.
* io/intrinsics.c: Use new stream interface.
* io/list_read.c (push_char): Don't use u.p.scratch, use realloc
to resize.
(free_saved): Don't check u.p.scratch.
(next_char): Use new stream interface, use fbuf_getc() for external
files.
(finish_list_read): flush format buffer.
(nml_query): Update to use modified interface:s
* io/open.c (test_endfile): Use new stream interface.
(edit_modes): Likewise.
(new_unit): Likewise, set bytes_left to 1 for stream files.
* io/read.c (read_l): Use new read_block_form interface.
(read_utf8): Likewise.
(read_utf8_char1): Likewise.
(read_default_char1): Likewise.
(read_utf8_char4): Likewise.
(read_default_char4): Likewise.
(read_a): Likewise.
(read_a_char4): Likewise.
(read_decimal): Likewise.
(read_radix): Likewise.
(read_f): Likewise.
* io/transfer.c (read_sf): Use fbuf_read and mem_alloc_r, remove
usage of u.p.line_buffer.
(read_block_form): Update interface to return pointer, use
fbuf_read for direct access.
(read_block_direct): Update to new stream interface.
(write_block): Use mem_alloc_w for internal I/O.
(write_buf): Update to new stream interface.
(formatted_transfer_scalar): Don't use u.p.line_buffer, use
fbuf_seek for external files.
(us_read): Update to new stream interface.
(us_write): Likewise.
(data_transfer_init): Always check if we switch modes and flush.
(skip_record): Use new stream interface, fix comparison.
(next_record_r): Check for and reset u.p.at_eof, use new stream
interface, use fbuf_getc for spacing.
(write_us_marker): Update to new stream interface, don't inline.
(next_record_w_unf): Likewise.
(sset): New function.
(next_record_w): Use new stream interface, use fbuf for printing
newline.
(next_record): Use new stream interface.
(finalize_transfer): Remove sfree call, use new stream interface.
(st_iolength_done): Don't use u.p.scratch.
(st_read): Don't check for end of file.
(st_read_done): Don't use u.p.scratch, use unit_truncate.
(hit_eof): New function.
* io/unit.c (init_units): Always init fbuf for formatted units.
(update_position): Use new stream interface.
(unit_truncate): New function.
(finish_last_advance_record): Use fbuf to print newline.
* io/unix.c: Remove unused SSIZE_MAX macro.
(BUFFER_SIZE): Make static const variable rather than macro.
(struct unix_stream): Remove dirty_offset, len, method,
small_buffer. Order elements by decreasing size.
(struct int_stream): Remove.
(move_pos_offset): Remove usage of dirty_offset.
(reset_stream): Remove.
(do_read): Rename to raw_read, update to match new stream
interface.
(do_write): Rename

[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2009-01-18 Thread jb at gcc dot gnu dot org


--- Comment #12 from jb at gcc dot gnu dot org  2009-01-18 09:30 ---
Small patch on top of the big patch in comment #11 in order to fix a couple
minor issues:

http://gcc.gnu.org/ml/fortran/2009-01/msg00152.html


-- 


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



[Bug libfortran/38668] advance=no: no buffering, truncate and seek

2009-01-18 Thread jb at gcc dot gnu dot org


--- Comment #3 from jb at gcc dot gnu dot org  2009-01-18 09:38 ---
My patch for PR25561 fixes this partially, with the patch the strace output is:

write(3, a, 1)= 1
write(3, a, 1)= 1
write(3, a, 1)= 1
write(3, a, 1)= 1
write(3, a, 1)= 1
write(3, a, 1)= 1

I distinctly remember that in finalize_transfer() or some related function, we
flush the buffers in case of advance='no', presumably in order to get the
common advance='no' case of waiting on user input correct. However, this check
should be tightened to additionally check that the unit is a tty, which should
fix this case. Assigning this to myself, will fix once the mega-patch for 25561
is in after 4.5 opens.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||25561
 AssignedTo|unassigned at gcc dot gnu   |jb at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-01-18 09:38:08
   date||


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



[Bug fortran/38823] Diagnose and treat (-2.0)**2.0 properly

2009-01-17 Thread jb at gcc dot gnu dot org


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-01-18 00:25:57
   date||


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



[Bug libfortran/37754] [4.4 Regression] READ I/O Performance regression from 4.3 to 4.4

2009-01-05 Thread jb at gcc dot gnu dot org


--- Comment #11 from jb at gcc dot gnu dot org  2009-01-05 22:14 ---
Patch that improves countlines.f test (and a bunch of other things):

http://gcc.gnu.org/ml/gcc-patches/2009-01/msg00222.html


-- 


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



[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2009-01-05 Thread jb at gcc dot gnu dot org


--- Comment #11 from jb at gcc dot gnu dot org  2009-01-05 22:15 ---
Patch getting rid of ASF for external files:

http://gcc.gnu.org/ml/gcc-patches/2009-01/msg00222.html


-- 


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



[Bug libfortran/35471] libgfortran fails with nonstandard complex.h

2008-12-23 Thread jb at gcc dot gnu dot org


--- Comment #13 from jb at gcc dot gnu dot org  2008-12-23 19:36 ---
As testing with a newer binutils apparently isn't forthcoming, closing as
invalid.

As an aside, while AFAIK this is not documented, my intuition is that
libgfortran requires a somewhat up to date libc, so maybe glibc 2.1 is just too
old.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug fortran/38199] missed optimization, regression: I/O performance

2008-11-20 Thread jb at gcc dot gnu dot org


--- Comment #1 from jb at gcc dot gnu dot org  2008-11-20 14:04 ---
I'm looking at I/O performance as part of PR 25561 (see also PR 37754, perhaps
this is a dup?), but my changes are invasive enough that they are 4.5 material.
Thanks for the report.


-- 

jb at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jb at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-11-20 14:04:55
   date||


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



[Bug libfortran/37754] [4.4 Regression] READ I/O Performance regression from 4.3 to 4.4

2008-11-20 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2008-11-21 07:43 ---
(In reply to comment #7)
 From some experiments I have done, we can make substantial improvement by
 streamlining next_char.  What I have in mind is reading a whole or partial
 block of a file and returning a pointer.  Then advancing forward next char is 
 a
 matter of incrementing the pointer,or back as in unget_char, decrementing the
 pointer.
 
 push_char then becomes simply an assignment.  This approach would get rid of
 all the function calls and and do the necessary manipulations with pointer ops
 and assignments.  It will take some careful rework, but I think it can be 
 done.
 
 Janne, is this what you had in mind? are you doing this?

Essentially yes. I have converted the read side to use the fbuf_* machinery as
well, and I have a fbuf_read(gfc_unit *, size_t *) function that fills the fbuf
buffer with a specified number of bytes (by calling sread()) and then returns a
pointer to the first element (the maximum size to iterate to is returned via
the pointer argument). 

Well, that's the general idea, I still have some nasty bugs to figure out. And
as I said, I think the changes are invasive enough that even if I'd get it done
soon, I don't think it's 4.4 material.


-- 


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



[Bug fortran/29600] MINLOC, MAXLOC and SHAPE take an optional KIND argument

2008-05-22 Thread jb at gcc dot gnu dot org


--- Comment #6 from jb at gcc dot gnu dot org  2008-05-22 18:13 ---
The proper solution, which as a side effect would take care of the
combinatorial explosion issue as well, would be to inline these intrinsics. See
also PR 31067.


-- 


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



[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2008-05-16 Thread jb at gcc dot gnu dot org


--- Comment #9 from jb at gcc dot gnu dot org  2008-05-16 08:12 ---
Patch with some improvements for part 1 here:

http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00924.html


-- 


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



[Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.

2008-05-16 Thread jb at gcc dot gnu dot org


--- Comment #14 from jb at gcc dot gnu dot org  2008-05-16 17:38 ---
Subject: Bug 35632

Author: jb
Date: Fri May 16 17:37:30 2008
New Revision: 135432

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=135432
Log:
Fix fallout from part 1 of PR25561 patch.

2008-05-16  Janne Blomqvist  [EMAIL PROTECTED]

PR libfortran/35632
* io/open.c (new_unit): Set stream position to correct value.

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/open.c


-- 


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



[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2008-05-16 Thread jb at gcc dot gnu dot org


--- Comment #10 from jb at gcc dot gnu dot org  2008-05-16 17:43 ---
Subject: Bug 25561

Author: jb
Date: Fri May 16 17:42:44 2008
New Revision: 135433

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=135433
Log:
Part 1.1 of PR25561.

2008-05-15  Janne Blomqvist  [EMAIL PROTECTED]

PR libfortran/25561
* io/io.h (struct fbuf): Change pointer to position offset.
* io/fbuf.c (fbuf_init): Reduce default size of buffer, ptr=pos
changes.
(fbuf_reset): ptr=pos changes.
(fbuf_alloc): If the request doesn't fit, don't waste memory by
keeping flushed bytes. ptr=pos changes.
(fbuf_flush): ptr=pos changes.
(fbuf_seek): Don't seek past the left tab limit, don't update active
byte count.
* io/open.c (new_unit): If RECL has been specified, used that as
initial buffer size.

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/fbuf.c
trunk/libgfortran/io/io.h
trunk/libgfortran/io/open.c


-- 


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



[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2008-05-15 Thread jb at gcc dot gnu dot org


--- Comment #7 from jb at gcc dot gnu dot org  2008-05-15 15:54 ---
Subject: Bug 25561

Author: jb
Date: Thu May 15 15:53:34 2008
New Revision: 135373

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=135373
Log:
Part 1 of PR 25561.

2008-05-15  Janne Blomqvist  [EMAIL PROTECTED]

PR libfortran/25561
* Makefile.am: Add fbuf.c to gfor_io_src.
* Makefile.in: Regenerate.
* io/io.h (read_block): Remove.
(struct stream): Remove alloc_r_at function pointer.
(salloc_r): Remove.
(salloc_r_at): Remove.
(salloc_w_at): Remove.
(salloc_w): Remove offset argument.
(struct fbuf): New struct for format buffer.
(struct gfc_unit): Add fbuf.
(read_block_form): New prototype.
(fbuf_init): Likewise.
(fbuf_destroy): Likewise.
(fbuf_reset): Likewise.
(fbuf_alloc): Likewise.
(fbuf_flush): Likewise.
(fbuf_seek): Likewise.
* io/file_pos.c (formatted_backspace): Change to use sread.
(unformatted_backspace): Likewise.
(st_backspace): Flush format buffer.
(st_rewind): Likewise.
* io/list_read.c (next_char): Likewise.
(nml_query): Tidying, flush format buffer.
* io/open.c (new_unit): Init format buffer.
* io/read.c (read_l): Change to use read_block_form.
(read_a): Likewise.
(read_decimal): Likewise.
(read_radix): Likewise.
(read_f): Likewise.
(read_x): Empty reads also for stream I/O.
* io/transfer.c (read_sf): Change to use sread.
(read_block): Rename to read_block_form, change prototype, use sread.
(read_block_direct): Don't seek stream files.
(write_block): Change to use fbuf if external file, don't seek stream
files.
(write_buf): Don't seek stream files.
(formatted_transfer_scalar): Use fbuf for external files.
(us_read): Change to use sread.
(pre_position): Do nothing for stream I/O.
(data_transfer_init): Flush fbuf when switching from write to read, if
POS is specified, seek stream file to correct offset.
(skip_record): Change to use sread.
(min_off): New function.
(next_record_r): Change to use sread.
(next_record_w): Change to use sset/sseek, flush fbuf.
(finalize_transfer): Flush fbuf.
* io/unit.c (init_units): Init fbuf for stdout, stderr.
(close_unit_1): Destroy fbuf.
(finish_last_advance_record): Flush fbuf, no need to seek.
* io/unix.c (fd_alloc_r_at): Remove unused where argument.
(fd_alloc_w_at): Likewise.
(fd_read): Remove third argument to fd_alloc_r_at.
(fd_write): Remove third argument to fd_alloc_w_at.
(fd_sset): Likewise.
(fd_open): Don't set alloc_r_at.
(mem_alloc_r_at): Remove unused where argument.
(mem_alloc_w_at): Likewise.
(mem_read): Don't incorrectly return previous errno, remove unused
third argument to alloc function.
(mem_write): Likewise.
(mem_set): Likewise.
(open_internal): Don't set alloc_r_at pointer.
* io/fbuf.c: New file.

Modified:
trunk/libgfortran/Makefile.am
trunk/libgfortran/Makefile.in
trunk/libgfortran/io/file_pos.c
trunk/libgfortran/io/io.h
trunk/libgfortran/io/list_read.c
trunk/libgfortran/io/open.c
trunk/libgfortran/io/read.c
trunk/libgfortran/io/transfer.c
trunk/libgfortran/io/unit.c
trunk/libgfortran/io/unix.c


-- 


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



[Bug libfortran/25561] Eventually get rid of the Alloc Stream Facility

2008-05-15 Thread jb at gcc dot gnu dot org


--- Comment #8 from jb at gcc dot gnu dot org  2008-05-15 18:32 ---
Subject: Bug 25561

Author: jb
Date: Thu May 15 18:30:29 2008
New Revision: 135388

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=135388
Log:
Remove XFAIL from gfortran.dg/fmt_t_7.f

2008-05-15  Janne Blomqvist  [EMAIL PROTECTED]

PR libfortran/34974
* gfortran.dg/fmt_t_7.f: Remove XFAIL, patch for PR 25561/Part 1 fixes
this.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/fmt_t_7.f


-- 


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



[Bug libfortran/34974] null bytes when reverse-tabbing long records (regression vs. g77)

2008-05-15 Thread jb at gcc dot gnu dot org


--- Comment #15 from jb at gcc dot gnu dot org  2008-05-15 18:33 ---
Subject: Bug 34974

Author: jb
Date: Thu May 15 18:30:29 2008
New Revision: 135388

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=135388
Log:
Remove XFAIL from gfortran.dg/fmt_t_7.f

2008-05-15  Janne Blomqvist  [EMAIL PROTECTED]

PR libfortran/34974
* gfortran.dg/fmt_t_7.f: Remove XFAIL, patch for PR 25561/Part 1 fixes
this.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/fmt_t_7.f


-- 


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



  1   2   3   >