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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |burnus at gcc dot gnu.org
   Target Milestone|---                         |4.6.3
            Summary|Bad association status      |[4.6/4.7 Regression] Bad
                   |after null() of derived     |association status after
                   |type component              |null() of derived type
                   |                            |component

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-12-06 
10:08:32 UTC ---
With GCC 4.3, 4.4 and 4.5, I get:
  do_job my_data%head is NOT associated
while GCC 4.6 prints
 do_job my_data%head is associated

With GCC 4.7 I get the correct result ("NOT associated") but it shows the same
valgrind warning as GCC 4.6. (GCC 4.5 shows no valgrind warning.) Thus, either
the issue is fixed in 4.7 - and 4.6 and 4.7 have additional issues. Or it works
in 4.7 only by chance.

==19540== Conditional jump or move depends on uninitialised value(s)
==19540==    at 0x400776: __worker_mod_MOD_do_job (hjhjff.f90:29)
==19540==    by 0x400849: MAIN__ (hjhjff.f90:47)
==19540==    by 0x40087F: main (hjhjff.f90:44)

Line 29 is:
        if (associated(dum%my_data%head)) then

Reply via email to