public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/110629] New: Bug in assignment of derived type with deferred length character component
@ 2023-07-11 14:02 townsend at astro dot wisc.edu
  2023-07-11 17:36 ` [Bug fortran/110629] " kargl at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: townsend at astro dot wisc.edu @ 2023-07-11 14:02 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 110629
           Summary: Bug in assignment of derived type with deferred length
                    character component
           Product: gcc
           Version: 12.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: townsend at astro dot wisc.edu
  Target Milestone: ---

I've run into a problem with intrinsic assignment of derived types with
allocatable character components. This seems to be a resurgence of PR105205, in
that only the first element of the character array is copied correctly; the
rest is filled with garbage.

Here's a demo:

--
module m

   type :: bar_t
      character(:), allocatable :: c(:)
   end type bar_t

end module m


program p

   use m

   implicit none

   type(bar_t) :: bar
   type(bar_t) :: biz

   integer :: i

   allocate(character(10)::bar%c(3))

   bar%c(1) = 'big'
   bar%c(2) = 'red'
   bar%c(3) = 'dog'

   biz = bar

   do i = 1, 3
      print *, i, '|'//biz%c(i)//'|'
   end do

end program p
--

Output compiling with gfortran 12.2.0 on MacOS 13.4:

           1 |big       |
           2 |>|
           3 ||

Unfortunately, this may be a heisenbug -- some code where I do this kind of
assignment is affected, other code is not.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/110629] Bug in assignment of derived type with deferred length character component
  2023-07-11 14:02 [Bug fortran/110629] New: Bug in assignment of derived type with deferred length character component townsend at astro dot wisc.edu
@ 2023-07-11 17:36 ` kargl at gcc dot gnu.org
  2023-07-11 17:47 ` anlauf at gcc dot gnu.org
  2023-07-12  0:18 ` townsend at astro dot wisc.edu
  2 siblings, 0 replies; 4+ messages in thread
From: kargl at gcc dot gnu.org @ 2023-07-11 17:36 UTC (permalink / raw)
  To: gcc-bugs

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

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu.org
           Priority|P3                          |P4

--- Comment #1 from kargl at gcc dot gnu.org ---
Thanks for the bug report.  This seems to have been fixed in trunk.  I don't
have gfortran 13.1 installed so cannot test.

% gfcx -o z a.f90  && ./z
           1 |big       |
           2 |red       |
           3 |dog       |
% gfcx -o z -O a.f90 && ./z
           1 |big       |
           2 |red       |
           3 |dog       |
% gfortran12 -o z -O a.f90 && ./z
           1 |big       |
           2 ||big|
           3 ||big||

There are a few Changelog entries over the last year that mention deferred
length, but it's unclear which one might have fixed the issue.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/110629] Bug in assignment of derived type with deferred length character component
  2023-07-11 14:02 [Bug fortran/110629] New: Bug in assignment of derived type with deferred length character component townsend at astro dot wisc.edu
  2023-07-11 17:36 ` [Bug fortran/110629] " kargl at gcc dot gnu.org
@ 2023-07-11 17:47 ` anlauf at gcc dot gnu.org
  2023-07-12  0:18 ` townsend at astro dot wisc.edu
  2 siblings, 0 replies; 4+ messages in thread
From: anlauf at gcc dot gnu.org @ 2023-07-11 17:47 UTC (permalink / raw)
  To: gcc-bugs

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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |13.2.0

--- Comment #2 from anlauf at gcc dot gnu.org ---
13-branch is also ok.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/110629] Bug in assignment of derived type with deferred length character component
  2023-07-11 14:02 [Bug fortran/110629] New: Bug in assignment of derived type with deferred length character component townsend at astro dot wisc.edu
  2023-07-11 17:36 ` [Bug fortran/110629] " kargl at gcc dot gnu.org
  2023-07-11 17:47 ` anlauf at gcc dot gnu.org
@ 2023-07-12  0:18 ` townsend at astro dot wisc.edu
  2 siblings, 0 replies; 4+ messages in thread
From: townsend at astro dot wisc.edu @ 2023-07-12  0:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Rich Townsend <townsend at astro dot wisc.edu> ---
Thanks for the quick responses, folks. The problem persists in 12.3.0 release,
but is fixed in 13.1.0 release.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-07-12  0:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-11 14:02 [Bug fortran/110629] New: Bug in assignment of derived type with deferred length character component townsend at astro dot wisc.edu
2023-07-11 17:36 ` [Bug fortran/110629] " kargl at gcc dot gnu.org
2023-07-11 17:47 ` anlauf at gcc dot gnu.org
2023-07-12  0:18 ` townsend at astro dot wisc.edu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).