This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/56149] 64 bit gFortran-C interop hidden character argument length passed as 32 bit value
- From: "sgk at troutmask dot apl.washington.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 01 Feb 2013 05:21:58 +0000
- Subject: [Bug fortran/56149] 64 bit gFortran-C interop hidden character argument length passed as 32 bit value
- Auto-submitted: auto-generated
- References: <bug-56149-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56149
--- Comment #7 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 2013-02-01 05:21:58 UTC ---
On Thu, Jan 31, 2013 at 04:29:46PM +0000, paul.laidler at ntlworld dot com
wrote:
> --- Comment #6 from Paul Laidler <paul.laidler at ntlworld dot com> 2013-01-31 16:29:46 UTC ---
> Yes, winio is written in C with the binding "int winio(char *string, ...)"
> and it is not Fortran standard conforming.
>
> In my opinion there should be no problem with backwards compatibility but I
> am thinking of a Windows environment and have no inside knowledge of how
> the C code produced by gFortran is passed on to gcc.
>
Contrary to your opinion, the simply change of simply setting
Index: trans-types.c
===================================================================
--- trans-types.c (revision 195396)
+++ trans-types.c (working copy)
@@ -968,7 +968,7 @@ gfc_init_types (void)
boolean_false_node = build_int_cst (boolean_type_node, 0);
/* ??? Shouldn't this be based on gfc_index_integer_kind or so? */
- gfc_charlen_int_kind = 4;
+ gfc_charlen_int_kind = 8;
gfc_charlen_type_node = gfc_get_int_type (gfc_charlen_int_kind);
}
which gives a 64-bit integer for the hidden length parameter
yields
=== gfortran Summary ===
# of expected passes 17592
# of unexpected failures 2743
# of unexpected successes 18
# of expected failures 40
# of unresolved testcases 56
# of unsupported tests 119
/usr/home/kargl/gcc/obj4x/gcc/testsuite/gfortran/../../gfortran version 4.8.0
20130123 (experimental) (GCC)
and I stopped the regression test it was taking way too long to
time out failing test cases.
Quitely frankly, I can't image anyone will ever need a Fortran
string with a length of 2**31.