IBM Support

IV39191: MEMORY LEAK DUE TO REMAINING TEMPORARY CONSTRUCTOR

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The compiler creates temporaries for various intermediate
    calcualtions. During the deletion of one such temporary, the
    delete of a constructor is failing to occur; resulting in a
    memory leak in the compiled application.
    
    
    =====Test case:
    #include <cassert>
    
    int ctor = 0;
    
    struct container{
       container(){ ctor++; }
       container(const container& con){ ctor++; }
       ~container(){ ctor--; }
       int at(int a) { return 1; }
    
    };
    
    container convertString( wchar_t *string )
    {
       container result;
       return result;
    }
    
    void test()
    {
       int a = container(convertString( (wchar_t*)(L"<0x") )).at(1);
    }
    
    int main(void)
    {
       test();
       assert(ctor==0);
       return 0;
    
    }
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    The problem may appear in specific expressions requiring a
    compiler-generated temporary.
    
    PROBLEM DESCRIPTION:
    There is a missing destructor call for a temporary.
    

Problem conclusion

  • The problem is resolved in the compiler by adding the missing
    destructor call.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV39191

  • Reported component name

    XL C/C++ AIX

  • Reported component ID

    5724X1300

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-04-03

  • Closed date

    2013-04-19

  • Last modified date

    2013-04-23

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

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

    LI77418 IV44270 LI77638

Fix information

  • Fixed component name

    XL C/C++ AIX

  • Fixed component ID

    5724X1300

Applicable component levels

  • RB10 PSY U859089

       UP C

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGH3R","label":"XL C\/C++ for AIX"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.1","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
23 April 2013