------- Comment #10 from jvdelisle at gcc dot gnu dot org  2006-04-07 22:23 
-------
I put some prints at the top of get_unit in unit.c to take a look.  After
putting the padding back where it was originally in io.h:

The DTP
Size of p: 132
Size of pad: 200
Size of char *: 4
Size if int: 4

This is OK on i686.  pad needs to be >= p

The original padding in io.h should be:

      char pad[16 * sizeof (char *) + 34 * sizeof (int)];

Steve Ellcey, could you check this on a 64 bit machine, HPUX.  I used the
following with a simple program that performed a WRITE.

gfc_unit *
get_unit (st_parameter_dt *dtp, int do_create)
{
  st_printf("The DTP\n");
  st_printf("Size of p: %d\n", sizeof(dtp->u.p));
  st_printf("Size of pad: %d\n", sizeof(dtp->u.pad));
  st_printf("Size of char *: %d\n", sizeof(char *));
  st_printf("Size if int: %d\n", sizeof(int));
...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26890

Reply via email to