On x86-64 Linux, the first six integer arguments are passed in registers (rdi, rsi, rdx, rcx, r8, r9). Multiple smaller integers are not packed into these registers, but they are accessed as 32-bit (edi, ...).
Satish Balay <ba...@mcs.anl.gov> writes: > Well it should atleast bite for functions that have 2 char arguments. Perhaps > none of the tests are using these routines.. > > Satish > > On Wed, 2 May 2018, Jed Brown wrote: > >> Is the length passed in registers and incorrectly using the lower half >> of the register provides the int part? >> >> Satish Balay <ba...@mcs.anl.gov> writes: >> >> > hm - I have gfortran-8 on my laptop - but haven't seen any testsuite >> > regressions due to this change. >> > >> > Satish >> > >> > On Wed, 2 May 2018, Jed Brown wrote: >> > >> >> See Fortran Language Issues. >> >> >> >> https://gcc.gnu.org/gcc-8/porting_to.html >> >> >> >> We'll have to test for this (probably compiler version) and change the >> >> PETSC_MIXED_LEN / PETSC_END_LEN to use size_t instead of int. >> >> >>