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.

Reply via email to