alignment/padding when mixing C struct and fortran 90 derived type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

currently I have some C code that will call a fortran 90 subroutine. In the C portion I have defined:

struct record
{
 int id;
 int dataLen;
 int *pFile;
 double *data;
 int ofs;
};

while in the fortran code I have defined:

module GGCM
type  record
   integer :: id
   integer :: dataLen
   integer, pointer :: pFile
   real*8, pointer :: data
   integer :: ofs
   end type record
contains
end module

From a C code I will declare an instance of record, initialize it and call a fortran subroutine which is defined like so

subroutine manipulateCStruct( kot )
 use  GGCM
 implicit none

 type(record) :: kot

 kot%id = kot%ofs
 kot%pFile = kot%ofs ! this should modify file which is in main.cpp
 kot%ofs = 128

 end subroutine

These will be compiled and linked using gcc, and gfortran. All is fine, and works as I'd like with out compiler optimization. My question is will I be safe passing above struct when compiler optimizations are enabled? I have the intuition that so far as the compile lines use the identical optimization flags, then all will be OK. But I'd like to confirm if possible gfortran and gcc use same alignment/padding optimizations.

Thanks in advance
Burlen





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux