IBM Support

LI77195: Incorrect output with function pointer

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The following test case gives out incorrect output if compiled
    by xlf.
    xlf test.f90
    module proc
        implicit none
        integer, parameter :: basis_length = 2
        contains
            subroutine test(f)
                integer, intent(in) :: f(basis_length)
                print *, f
            end subroutine test
    end module proc
    program test_proc_pointers
        use proc
        implicit none
        abstract interface
            subroutine i_test(f)
                use proc, only: basis_length
                implicit none
                integer, intent(in) :: f(basis_length)
            end subroutine i_test
        end interface
        procedure(i_test), pointer :: test_ptr
        integer, pointer :: y(:)
        allocate(y(basis_length))
        test_ptr => test
        y = (/ 65535, 0 /)
        call test_ptr(y)    !xlf gives incorrect result on
    this call
        deallocate(y)
    end program test_proc_pointers
    ===== ACTUAL OUTPUT:
    test  00000000000000000000000100010001
    00010000000000010001111001000000
    ===== EXPECTED OUTPUT:
    test  00000000000000001111111111111111
    00000000000000000000000000000000
    

Local fix

Problem summary

  • PROBLEM DESCRIPTION: Users get wrong results when invoking a
    procedure pointer and passing pointer arrays to explicit shape
    dummy arguments
    
    USERS AFFECTED: Users who make indirect calls to procedures
    with explicit shape arrays and pass pointer arrays as actual
    argument
    

Problem conclusion

  • Compiler now avoids incorrect outlining of indirect procedure
    calls.
    Problem is fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI77195

  • Reported component name

    XL FORTRAN AE B

  • Reported component ID

    5799HJF00

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-02-22

  • Closed date

    2013-10-17

  • Last modified date

    2013-10-17

Fix information

  • Fixed component name

    XL FORTRAN AE B

  • Fixed component ID

    5799HJF00

Applicable component levels

  • RB10 PSY

       UP

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B.1","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
14 October 2021