public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute
@ 2013-06-03  9:07 burnus at gcc dot gnu.org
  2013-06-03 11:22 ` [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE " janus at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-06-03  9:07 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

            Bug ID: 57508
           Summary: [OOP] Intrinsic assignment+defined-assignment for
                    comps: ROCEDURE attribute of '_F.DA0' conflicts with
                    VARIABLE attribute
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: pault at gcc dot gnu.org

The following code fails with the error message:

end module 
           1
Error: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute at (1)


That's due to the support of calling defined assignment for the components in
an intrinsic assignment, which was added in GCC 4.8.

The _F.DA0 variable is generated in resolve.c's get_temp_from_expr.


module ForTrilinos_ref_counter
  type ref_counter
  contains
      procedure :: assign
      generic   :: assignment(=) => assign
  end type
contains
  subroutine assign (lhs, rhs)
    class (ref_counter), intent(inout) :: lhs
    class (ref_counter), intent(in) :: rhs
  end subroutine
end module
module FEpetra_BlockMap
  use ForTrilinos_ref_counter, only : ref_counter
  type :: Epetra_BlockMap 
    type(ref_counter) :: counter
  end type
contains
  function from_struct() result(new_Epetra_BlockMap)
    type(Epetra_BlockMap) :: new_Epetra_BlockMap
  end function
  type(Epetra_BlockMap) function create_arbitrary()
    create_arbitrary = from_struct()
  end function
end module


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

* [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute
  2013-06-03  9:07 [Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute burnus at gcc dot gnu.org
@ 2013-06-03 11:22 ` janus at gcc dot gnu.org
  2013-06-03 21:08 ` burnus at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: janus at gcc dot gnu.org @ 2013-06-03 11:22 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-06-03
                 CC|                            |janus at gcc dot gnu.org
            Summary|[OOP] Intrinsic             |[4.8/4.9 Regression] [OOP]
                   |assignment+defined-assignme |Intrinsic
                   |nt for comps: ROCEDURE      |assignment+defined-assignme
                   |attribute of '_F.DA0'       |nt for comps: PROCEDURE
                   |conflicts with VARIABLE     |attribute of '_F.DA0'
                   |attribute                   |conflicts with VARIABLE
                   |                            |attribute
     Ever confirmed|0                           |1

--- Comment #1 from janus at gcc dot gnu.org ---
4.7 shows no error, 4.8 gives an additional ICE (in
gfc_enforce_clean_symbol_state) which might be PR 57364


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

* [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute
  2013-06-03  9:07 [Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute burnus at gcc dot gnu.org
  2013-06-03 11:22 ` [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE " janus at gcc dot gnu.org
@ 2013-06-03 21:08 ` burnus at gcc dot gnu.org
  2013-06-11 16:19 ` burnus at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-06-03 21:08 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Patch, pending review: http://gcc.gnu.org/ml/fortran/2013-06/msg00027.html


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

* [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute
  2013-06-03  9:07 [Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute burnus at gcc dot gnu.org
  2013-06-03 11:22 ` [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE " janus at gcc dot gnu.org
  2013-06-03 21:08 ` burnus at gcc dot gnu.org
@ 2013-06-11 16:19 ` burnus at gcc dot gnu.org
  2013-06-14 11:25 ` burnus at gcc dot gnu.org
  2013-06-14 11:26 ` burnus at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-06-11 16:19 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Fixed on the GCC 4.8 branch. Patch pending for the trunk, cf.
http://gcc.gnu.org/ml/fortran/2013-06/msg00064.html


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

* [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute
  2013-06-03  9:07 [Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute burnus at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2013-06-11 16:19 ` burnus at gcc dot gnu.org
@ 2013-06-14 11:25 ` burnus at gcc dot gnu.org
  2013-06-14 11:26 ` burnus at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-06-14 11:25 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Author: burnus
Date: Fri Jun 14 11:24:27 2013
New Revision: 200089

URL: http://gcc.gnu.org/viewcvs?rev=200089&root=gcc&view=rev
Log:
2013-06-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57508
        * resolve.c (get_temp_from_expr): Don't copy function
        result attributes to temporary.

2013-06-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57508
        * gfortran.dg/defined_assignment_7.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/defined_assignment_7.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/resolve.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute
  2013-06-03  9:07 [Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute burnus at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2013-06-14 11:25 ` burnus at gcc dot gnu.org
@ 2013-06-14 11:26 ` burnus at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-06-14 11:26 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57508

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Tobias Burnus <burnus at gcc dot gnu.org> ---
FIXED - now also on the trunk; GCC 4.8 was fixed in comment 4.

At the end, the same patch was applied to the trunk as on the branch, cf.
http://gcc.gnu.org/ml/fortran/2013-06/msg00086.html


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

end of thread, other threads:[~2013-06-14 11:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-03  9:07 [Bug fortran/57508] New: [OOP] Intrinsic assignment+defined-assignment for comps: ROCEDURE attribute of '_F.DA0' conflicts with VARIABLE attribute burnus at gcc dot gnu.org
2013-06-03 11:22 ` [Bug fortran/57508] [4.8/4.9 Regression] [OOP] Intrinsic assignment+defined-assignment for comps: PROCEDURE " janus at gcc dot gnu.org
2013-06-03 21:08 ` burnus at gcc dot gnu.org
2013-06-11 16:19 ` burnus at gcc dot gnu.org
2013-06-14 11:25 ` burnus at gcc dot gnu.org
2013-06-14 11:26 ` burnus at gcc dot gnu.org

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