https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110360
--- Comment #28 from anlauf at gcc dot gnu.org --- (In reply to David Edelsohn from comment #27) > If GFORTRAN assumes that a scalar value and a value in a struct are passed > in registers with the same padding, that is not a valid, general assumption. I do understand that this makes a difference for BE. But what does this mean in this context? Does a constant literal character as in the testcase get padded because AIX wants to pass it in a struct? Is this done (in)transparently in gcc? Where and how? And do we need for this reason to explicitly convert a character temporary as in { character(kind=1) char.6; char.6 = (character(kind=1)) a; val (&"A"[1]{lb: 1 sz: 1}, char.6, 1, 1); } to a struct before calling val? What is the right way to do this is a platform-independent way? I do not see anything wrong in the tree-dump, maybe due to my lack of experience. Maybe the tree-dump is just not expressive enough here.