https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110360

--- Comment #10 from anlauf at gcc dot gnu.org ---
Hmm, the testers show failures for the new testcase for the following cases:

x86 / -m32 / -O1 and higher,
Power9 BE, all optimization levels.

I can reproduce the case of x86 / -m32 / -O1 for the following reduced test:

program p
  implicit none
  call val4 (4_"A"  , 4_"A"  ) ! OK
  call val4 (4_"V**", 4_"V"  ) ! OK
  call val4 (4_"V**", 4_"V//") ! fail
contains
  subroutine val4 (x, c)
    character(kind=4), intent(in) :: x  ! control: pass by reference
    character(kind=4), value      :: c
    print *, "by value(kind=4): ", c, " ", x
    if (c /= x)     stop 3
    c = 4_"#"
    if (c /= 4_"#") stop 4
  end
end

This is a pre-existing issue for constant character argument (len>1) and
can be reproduced with e.g. gcc-13.  It does not seem to occur with -m64.

Maybe we are giving the middle end a bad representation of the argument.

Reply via email to