------- Comment #1 from burnus at gcc dot gnu dot org 2008-12-15 09:44 ------- Answer by Bader:
"For generics, the "R" part of the TKR rule applies, which prohibits *both* above cases." => gfortran does it right. (I'm not fully convinced, but I buy this.) Diagnostics: Bader writes: "For handing on c_char scalars to char * an exception was made in F2003, allowing scalars to be matched to an entity with the dimension(*) attribute; otherwise dimension(*) will match arrays only, though of arbitrary dimension." I think this is partially misleading. I think "12.4.1.5 Sequence association" is relevant and it also applies to default character. I.e. one seemingly needs to rejected this for kind=4 character strings with -std=f2003: Index: interface.c =================================================================== --- interface.c (Revision 142761) +++ interface.c (Arbeitskopie) @@ -1525,6 +1525,12 @@ compare_parameter (gfc_symbol *formal, g formal->name, &actual->where); return 0; } + else if (where && formal->ts.kind != 1 + && gfc_notify_std (GFC_STD_GNU, "Extension: Non-default-kind" + "/C_CHAR scalar CHARACTER actual argument " + "with array dummy argument '%s' at %L", + formal->name, &actual->where) == FAILURE) + return 0; else if ((gfc_option.allow_std & GFC_STD_F2003) == 0) return 0; else -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|rejects-valid | Summary|Character storage |-std=f*: Reject scalar |association - actual <-> |character to array dummy in |dummy argument |several cases http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38506