This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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] | |
Tim Prince wrote:
On 7/12/2014 3:15 PM, Tobias Burnus wrote:64bit Windows is special as "long" is only 32bit wide - while pointers are 64bit and, hence, wider.Are you distinguishing MinGW-x64 from other gfortran variants which use Windows X64 (e.g. cygwin64?)
Well, in this case, it was a just a bug: It simply makes no sense to use "long" to a value which will later be stored in a "ptrdiff_t". Always using size_t/ptrdiff_t is the correct use. Note: The value in question is just used to check whether the array element size is too large for the array descriptor or not â it does not affect the array descriptor or any generated code.
This could increase the confusion (which Fortran is designed to avoid). I thought it was clear from the intent of cygwin C and C++ to maintain linux compatibility that long there is a 64-bit data type. Perhaps if we can be assured that correct usage of C_LONG etc. could be counted upon, recognizing that this will change KIND among various gfortrans, we will be OK.
Well, for C_LONG, gfortran uses whatever the platform ABI and command line options tells the compiler. Thus, INTEGER(C_LONG) and C/C++'s "long" are always compatible.
Tobias
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |