https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110360
--- Comment #36 from David Edelsohn <dje at gcc dot gnu.org> ---
I don't know enough FORTRAN90 to instruct the compiler to use an external
function as if it were native.
EXTERNAL :: MYFUNC
changes the calling convention.
But if I manually change the assembly code so that "val" calls a C function a
print the values
#include <stdio.h>
void
val_0 (int x, int y)
{
printf ("char(0x%x = %d) = %c 0 0 %c (LEN = %d)\n",
x, x, (char) (x>>24), (char) (x), y);
}
it produces the following output (32 bit):
char(0x41000000 = 1090519040) = A 0 0 (LEN = 1)
char(0x41 = 65) = 0 0 A (LEN = 1)
char(0x41 = 65) = 0 0 A (LEN = 1)
for
call val ("A")
call val (c)
call val (char(a))
to demonstrate exactly what I see on big endian POWER.