public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/67431] New: ALLOCATE with SOURCE ignores overloaded assignment operator and uses intrinsic when copying values
@ 2015-09-02  5:49 alipasha.celeris at gmail dot com
  2015-09-02  8:45 ` [Bug fortran/67431] " dominiq at lps dot ens.fr
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: alipasha.celeris at gmail dot com @ 2015-09-02  5:49 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 67431
           Summary: ALLOCATE with SOURCE ignores overloaded assignment
                    operator and uses intrinsic when copying values
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: alipasha.celeris at gmail dot com
  Target Milestone: ---

Created attachment 36285
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36285&action=edit
the test file (as it appears in the comment)

The following code produces wrong results (it compiles and runs with no memory
errors)

      MODULE A_TEST_M
        TYPE :: A_TYPE
          INTEGER :: INT
          CONTAINS
          GENERIC :: ASSIGNMENT (=) => ASGN_A
          PROCEDURE, PRIVATE :: ASGN_A
        END TYPE
        CONTAINS

        ELEMENTAL SUBROUTINE ASGN_A (A, B)
          CLASS (A_TYPE), INTENT (INOUT) :: A
          CLASS (A_TYPE), INTENT (IN) :: B
          A%INT = 42
        END SUBROUTINE
      END MODULE A_TEST_M

      PROGRAM ASGN_REALLOC_TEST
        USE A_TEST_M
        TYPE (A_TYPE), ALLOCATABLE :: A(:), B(:)

        ALLOCATE (B(4))
        B(:)%INT = 765

        ALLOCATE (A, SOURCE = B)
        PRINT *, 'SIZE(A)', SIZE(A), 'A', A

        DEALLOCATE (A, B)
      END PROGRAM

The result is:

 SIZE(A)           4 A         765         765         765         765

While all A(:)%INT should be equal to 42 if the overloaded assignment operator
was used.


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

end of thread, other threads:[~2015-09-29 17:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-02  5:49 [Bug fortran/67431] New: ALLOCATE with SOURCE ignores overloaded assignment operator and uses intrinsic when copying values alipasha.celeris at gmail dot com
2015-09-02  8:45 ` [Bug fortran/67431] " dominiq at lps dot ens.fr
2015-09-04  9:09 ` dominiq at lps dot ens.fr
2015-09-29 17:15 ` dominiq at lps dot ens.fr

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).