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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
                 CC|                            |burnus at gcc dot gnu.org,
                   |                            |janus at gcc dot gnu.org,
                   |                            |pault at gcc dot gnu.org
   Target Milestone|---                         |4.7.0
            Summary|[4.7 Regression] ICE (use   |[4.7 Regression][OOP] ICE
                   |statements order)           |(segfault) depending on USE
                   |                            |statements order

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-01-10 
10:40:59 UTC ---
Unless I made a mistake when bisecting:
Working
  4.7.0 20111109 - Rev. 181198
Failing
  4.7.0 20111109 - Rev. 181199

That's
    http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181199

    2011-11-09  Janus Weil  <ja...@gcc.gnu.org>

        PR fortran/50960
        * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER.
        * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with
        their value.
        * resolve.c (resolve_values): Use-associated symbols do not need to
        be resolved again.
        (resolve_fl_parameter): Make sure the symbol has a value.


Valgrind shows:

==2177== Invalid read of size 8
==2177==    at 0x553580: mio_pointer_ref(void*) (module.c:2463)
==2177==    by 0x5555A8: mio_symbol_ref(gfc_symbol**) (module.c:2726)
==2177==    by 0x5560E8: mio_expr(gfc_expr**) (module.c:3305)
==2177==    by 0x55643D: mio_expr(gfc_expr**) (module.c:2855)
==2177==    by 0x55703B: mio_symbol(gfc_symbol*) (module.c:3782)
==2177==    by 0x5572B5: write_symbol(int, gfc_symbol*) (module.c:5027)
==2177==    by 0x5591B5: write_symbol0(gfc_symtree*) (module.c:5067)
==2177==    by 0x559158: write_symbol0(gfc_symtree*) (module.c:5046)
==2177==    by 0x559158: write_symbol0(gfc_symtree*) (module.c:5046)
==2177==    by 0x559158: write_symbol0(gfc_symtree*) (module.c:5046)
==2177==    by 0x559804: gfc_dump_module(char const*, int) (module.c:5243)
==2177==    by 0x564CCA: gfc_parse_file() (parse.c:4603)

Reply via email to