IBM Support

IV45740: 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

    IV45740

  • Reported component name

    XL FORTRAN AIX

  • Reported component ID

    5724U8200

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-07-17

  • Closed date

    2013-07-17

  • Last modified date

    2013-07-17

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

    LI77195

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

Fix information

  • Fixed component name

    XL FORTRAN AIX

  • Fixed component ID

    5724U8200

Applicable component levels

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSB259","label":"XL Fortran Advanced Edition for Linux"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.1","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
24 February 2022