[Bug fortran/51207] [OOP] Mark __def_init_... as FL_PARAMETER

2016-11-16 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51207

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0

[Bug fortran/51207] [OOP] Mark __def_init_... as FL_PARAMETER

2011-11-19 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51207

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-11-19 
09:26:38 UTC ---
Author: burnus
Date: Sat Nov 19 09:26:33 2011
New Revision: 181505

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=181505
Log:
2011-11-19  Tobias Burnus  bur...@net-b.de

PR fortran/51207
* class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
and hence as TREE_READONLY; add subroutine attribute to
__copy_ procedure.

PR fortran/50640
* trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
* trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab
as GFC_DECL_PUSH_TOPLEVEL.
(gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
(build_function_decl): Push __copy_ procedure to the toplevel.


Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/class.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/fortran/trans.h


[Bug fortran/51207] [OOP] Mark __def_init_... as FL_PARAMETER

2011-11-19 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51207

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2011-11-19 
09:30:05 UTC ---
FIXED on the 4.7 trunk.


[Bug fortran/51207] [OOP] Mark __def_init_... as FL_PARAMETER

2011-11-18 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51207

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-11-18 
09:50:39 UTC ---
Hit enter too early. The problem is that the __def_init_... is not marked as
FL_PARAMETER and hence not as TREE_READONLY.

However, even if one manually sets attr.flavor == FL_PARAMETER, the call does
not seem to get optimized away. I assume that's because one has:

  __builtin_memcpy (D.1947_18, __def_init_m_T, D.1957_16);

which makes the analysis more difficult. Nevertheless, the default
initialization should be marked as TREE_READONLY.


[Bug fortran/51207] [OOP] Mark __def_init_... as FL_PARAMETER

2011-11-18 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51207

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-11-18 
10:00:43 UTC ---
  allocate(t :: y)
  allocate(x, mold=x)

The last line should be: x, mold=y. (Cf. PR 51208.)