------- Comment #7 from fxcoudert at gcc dot gnu dot org 2007-08-11 23:22 ------- (In reply to comment #6) > For the first one, gfc_conv_missing_dummy() is called, which leads to correct > code. For the second one, gfc_conv_missing_dummy() is not called, leading to > wrong-code.
The reason for that is in gfc_trans_call, around line 2316 (the call to gfc_conv_missing_dummy): when we come here, we check both the list of actual args and the list of formal args for optional args. This is need, because we need the type of the formal arg. Problem is that apparently intrinsic subroutines don't have a list of formal args when we come up here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30964