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

    IV44200

  • Reported component name

    XL FORTRAN FOR

  • Reported component ID

    5725C7400

  • Reported release

    E10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-06-14

  • Closed date

    2013-06-14

  • Last modified date

    2013-06-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 FOR

  • Fixed component ID

    5725C7400

Applicable component levels

  • RE10 PSY U859152

       UP C



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

XL Fortran for AIX
Compiler

Software version:

14.1

Reference #:

IV44200

Modified date:

2013-06-17

Translate my page

Machine Translation

Content navigation