------- Comment #8 from burnus at gcc dot gnu dot org 2008-01-03 16:43 ------- (In reply to comment #6) > The problem is that cshift0's target-independent function type says that the > SHIFT and DIM arguments are integers, rather than pointers to integers.
Indeed. Thanks Richard! The dump has: integer(kind=8) D.879; [...] D.879 = (integer(kind=8)) dimmy; _gfortran_cshift0_8 (&parm.0, &parm.2, &C.877, D.879); while the libgfortran has: void cshift0_8 (gfc_array_char *ret, const gfc_array_char *array, const GFC_INTEGER_8 *pshift, const GFC_INTEGER_8 *pdim) The problem seems to be in trans-expr.c's gfc_conv_missing_dummy or (less likely) in the way it is called in trans-intrinsic.c's gfc_conv_intrinsic_function_args. -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu dot | |org GCC build triplet|hppa-unknown-linux-gnu | GCC host triplet|hppa-unknown-linux-gnu | GCC target triplet|hppa-unknown-linux-gnu | Keywords| |wrong-code Last reconfirmed|2008-01-01 23:07:28 |2008-01-03 16:43:32 date| | Summary|FAIL: |FAIL: |gfortran.dg/optional_dim_2.f|gfortran.dg/optional_dim_2.f |90 |90: FE vs library argument | |missmatch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34387