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

    IV40215

  • Reported component name

    XL FORTRAN FOR

  • Reported component ID

    5724X1500

  • Reported release

    D10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-04-19

  • Closed date

    2013-04-19

  • Last modified date

    2013-04-23

  • 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 FOR

  • Fixed component ID

    5724X1500

Applicable component levels

  • RD10 PSY U858571

       UP C



Rate this page:

(0 users)Average rating

Document information


More support for:

XL Fortran for AIX

Software version:

13.1

Reference #:

IV40215

Modified date:

2013-04-23

Translate my page

Machine Translation

Content navigation