The test tails for both HP-UX and Linux on IA64. It looks like the problem is with the %VAL function on the f_to_f subroutine call. I believe that the Fortran front-end is doing something wrong so that the %VAL(a) gets passed in an integer register instead of a floating point register. Since a is a floating point variable and it is being passed by value, the IA64 ABI says it should be passed in a floating point register and that is where the C code is expecting it.
-- Summary: gfortran.dg/c_by_val_1.f fails on ia64-*-*, problem with %VAL Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sje at cup dot hp dot com GCC target triplet: ia64-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30432