IBM Support

LI78596: PROCEDURE POINTER COMPONENT CAUSES INTERNAL COMPILER ERROR WHEN USE

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The compiler produces an internal compiler error for the
    following test case:
    
    $ cat test.f90
    ! Run for ICE: mpixlf2003_r -c xlf_module_bug1_clean.f90
          module types
            public type2
            type type6
    ! JCG Need at least one proceedure here
              procedure(aaa_aaaaaaa_int), pointer, nopass :: ee
              procedure(ddd_dddddddddd_int), pointer, nopass :: dd
            end type type6
    
            type type2
              type(type6) :: parm3
            end type type2
    
           abstract interface
            subroutine aaa_aaaaaaa_int (parm3)
               import :: type6
               type(type6), intent(inout) :: parm3
            end subroutine aaa_aaaaaaa_int
    
            subroutine ddd_dddddddddd_int (parm3)
               import :: type6
               type(type6), intent(inout) :: parm3
            end subroutine ddd_dddddddddd_int
           end interface
          end module types
    
          module othertypes
          contains
            subroutine required_sub ( parm1 )
                use types, only : type2
                type(type2), intent (in) :: parm1
            end subroutine required_sub
          end module othertypes
    
          module sub
            use othertypes
            public A2
          contains
            subroutine A2 ( parm2 )
            use types, only: type2
            type(type2), intent(inout) :: parm2
            end subroutine A2
          end module sub
    
          module problem_module
          contains
            subroutine problem_sub ( parm2 )
    !JCG comment out ', only : A2' on next line to work around ICE
              use sub, only : A2
              use types, only : type2
              type(type2), intent(inout) :: parm2
    
              call A2 (parm2)
            end subroutine problem_sub
          end module problem_module
    $
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Users who use a module that has a derived type that has
    procedure pointer component whose interface is an interface
    block; and
    if the module is used by several subsequent modules in
    combination of USE, ONLY; the compiler may abend depending on
    the order of the USE statement.
    
    PROBLEM DESCRIPTION:
    The compiler abend is due to that the compiler is not reading
    the interface that describes the procedure pointer component
    correct.
    

Problem conclusion

  • The compiler has been fixed so that the order of the USE
    statement is irrelevant.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI78596

  • Reported component name

    XL C/C++ FOR BG

  • Reported component ID

    5799AG100

  • Reported release

    E10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-05-21

  • Closed date

    2015-08-20

  • Last modified date

    2015-08-20

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    IV75142 IV75547

Fix information

  • Fixed component name

    XL FORTRAN FOR

  • Fixed component ID

    5799AH100

Applicable component levels

  • RE10 PSY

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS2MB5","label":"XL Fortran for Blue Gene\/Q"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"ALL VERSIONS","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
20 August 2015