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



             Bug #: 55990

           Summary: Absent optional: gfortran.dg/class_optional_2.f90:

                    Conditional jump depends on uninitialised value

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Keywords: wrong-code

          Severity: normal

          Priority: P3

         Component: fortran

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: bur...@gcc.gnu.org





Note: gfortran.dg/class_optional_2.f90 has been added for PR 50981 / PR 54618.

It uses nullified pointers and absent optionals.





http://gcc.gnu.org/ml/gcc-testresults/2013-01/msg01524.html shows:



Running target unix/-m32 on x86_64-unknown-linux-gnu

FAIL: gfortran.dg/class_optional_2.f90  -O2  execution test





If one uses valgrind on the examples, one finds many failure of the form:

==15916== Conditional jump or move depends on uninitialised value(s)

==15916==    at 0x41103BD: _gfortran_internal_pack (in_pack_generic.c:53)



which is called, respectively, in the lines:

==15916==    by 0x80489A9: MAIN__ (class_optional_2.f90:39)

==15916==    by 0x80489C5: MAIN__ (class_optional_2.f90:40)



Those contain the calls:

   type(t), optional :: z(4)  ! Absent actual argument

   type(t), pointer :: y(:)   ! nullified pointer

   y => null()

...

   call a4t(y) ! line 39

   call a4t(z) ! line 40



Hereby, a4t is:



 subroutine a4t(x)

   type(t), intent(in), optional :: x(4)

Reply via email to