IV44282: INCORRECT OUTPUT WITH _DECIMAL128 TYPE

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Consider the following testcase:
    
    $cat test.cpp
    /************************************************************/
    #define __STDC_WANT_DEC_FP
    #include <iostream>
    #include <stdio.h>
    
    class Decimal128 {
        _Decimal128 d_value;
      public:
        Decimal128(_Decimal128 x);
        _Decimal128 value() const;
    };
    
    Decimal128::Decimal128(_Decimal128 x) { d_value = x; }
    _Decimal128 Decimal128::value() const { return d_value; }
    
    std::ostream &operator<<(std::ostream &o, _Decimal128 d)
    {
        char b[48];
        snprintf(b, sizeof(b), "%DDe", d);
        return o << b;
    }
    
    int main()
    {
        Decimal128 dec(0.0dl);
        std::cout << dec.value() << std::endl;
    }
    /************************************************************/
    
    Compile the testcase as:
    
    xlC -qdfp  test.cpp
    
    Execute the final executale a.out and observe the output. The
    executable incorrectly issues the output as "2.101740e-6158"
    instead of expected (correct) output "0.000000e+00":
    
    ./a.out
    <output>
    2.101740e-6158
    

Local fix

  • Use no optimization and -qinline, or turn on optimization at
    compile time
    

Problem summary

  • Invalid output when using 128-bit DFP variables.
    

Problem conclusion

  • We need to identify a certain opcode as a float point and
    extended floating point value.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV44282

  • Reported component name

    XL C FOR AIX

  • Reported component ID

    5725C7100

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-06-17

  • Closed date

    2013-06-17

  • Last modified date

    2013-06-17

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

    IV37692

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

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5725C7100

Applicable component levels

  • RC10 PSN U860046

       UP06/09/13 C



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

XL C for AIX
Compiler

Software version:

12.1

Reference #:

IV44282

Modified date:

2013-06-17

Translate my page

Machine Translation

Content navigation