IBM Support

PI73827: FAILURE TO RECOGNIZE VALID IEEE754 128-BIT NAN

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • On z/OS, a "long double" NaN can take this form:
    
    
        0x7FFF8000000000000000000000000000
    
    This conforms to IEEE754 NaN encoding:
    
    "In IEEE 754 standard-conforming floating-point storage formats,
    NaNs are identified by specific, pre-defined bit patterns unique
    to NaNs.
    
    The sign bit does not matter. Binary format NaNs are represented
    with the exponential field filled with ones (like infinity
    values) and some non-zero number in the significand field
    (to make them distinct from infinity values)."
    
    In this case, the bit in the 0x80 byte is the "non-zero number
    in the significand field." All is well here.
    
    
    Now, take this slightly modified value:
    
        0x7FFF0000000100000000000000000000
    
    The bit in the 0x80 byte has been cleared, and in its place
    is set an arbitrary bit further down in the significand.
    
    
    z/OS does not recognize this as a NaN. (That is, isnan() returns
    false for this value.)
    This is incorrect, per the definition of how NaNs are encoded.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of XL C/C++ that call function         *
    *                 isnan() to test IEEE754 128-bit NaN.         *
    ****************************************************************
    * PROBLEM DESCRIPTION: An IEEE754 128-bit NaN may not be       *
    *                      identified by function isnan().         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    See the problem description.
    

Problem conclusion

  • The code has been changed to fix the problem.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI73827

  • Reported component name

    LE C LIBRARY

  • Reported component ID

    568819805

  • Reported release

    7A0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-12-16

  • Closed date

    2017-02-06

  • Last modified date

    2017-03-02

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

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

    UI44444 UI44445

Modules/Macros

  • CELHCVBF CELQCVBF EDC40456
    

Fix information

  • Fixed component name

    LE C LIBRARY

  • Fixed component ID

    568819805

Applicable component levels

  • R7A0 PSY UI44444

       UP17/02/22 P F702

  • R790 PSY UI44445

       UP17/02/22 P F702

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVSBD","label":"Runtime"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7A0","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7A0","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7A0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 March 2017