https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86277
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |anlauf at gcc dot gnu.org --- Comment #8 from anlauf at gcc dot gnu.org --- Created attachment 55294 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55294&action=edit WIP patch The attached WIP patch fixes the issue for optional arguments of intrinsic type except CHARACTER, but does not yet handle derived types. Regtests OK. Enabling derived types does not work when they occur in an array constructor, and the code would ICE on empty constructors of derived type. I haven't understood yet how (and why) temporaries are generated for procedure arguments even when it is known at compile-time that these have size zero. I'd appreciate input from others.