This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/56149] 64 bit gFortran-C interop hidden character argument length passed as 32 bit value


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]