[Bug fortran/51207] [OOP] Mark __def_init_... as FL_PARAMETER
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
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
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
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
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.)