[Bug fortran/32732] [Bind C] Character scalars are passed as arrays

Tobias Burnus burnus@net-b.de
Thu Jul 26 11:54:00 GMT 2007


Hi,

Thanks Angelo for testing. I'm mostly interested in platforms where ISO
Bind C fails (such as ia64 HP-UX or some(!) powerpc64-unknown-linux-gnu)
and I assume it works on i686 Linux. If it does not I am highly
interested in knowing what fails.

In any case, you found some bugs in my test case; besides the
integer-kind problem the following real programming error:

Angelo Graziosi wrote:

> complex float: sizeof = 8, kind = 4
> complex double: sizeof = 8, kind = 8
> complex long double: sizeof = 8, kind = 10
>   
And another mistake by me; it should be:

  call printf("complex float", sizeof(cmplx(0.0, 0.0, c_float_complex)), c_float_complex);
  call printf("complex double", sizeof(cmplx(0.0, 0.0, c_double_complex)), c_double_complex);
  call printf("complex long double", sizeof(cmplx(0.0, 0.0, c_long_double_complex)), c_long_double_complex);


I was passing c_*_complex not  as KIND but at imaginary number to
"cmplx"; thanks for catching this.

Tobias



More information about the Fortran mailing list