Skip to main content

IY76552: Memory fault in nested loop within try block

Fixes are available

December 2006 IBM C++ Runtime Environment Components for AIX
November 2006 IBM C++ Runtime Environment Components for AIX
February 2007 IBM C++ Runtime Environment Components for AIX
June 2006 IBM C++ Runtime Environment Components for AIX
April 2009 XL C/C++ Enterprise Edition V8.0 for AIX PTF
August 2007 XL C/C++ Enterprise Edition V8.0 for AIX PTF
May 2007 XL C/C++ Enterprise Edition V8.0 for AIX PTF
April 2006 IBM C++ Runtime Environment Components for AIX
December 2006 XL C/C++ Enterprise Edition V8.0 for AIX PTF
July 2007 XL C/C++ Enterprise Edition V8.0 for AIX PTF
July 2007 IBM C++ Runtime Environment Component for AIX
June 2006 XL C/C++ Enterprise Edition V8.0 for AIX PTF
November 2005 IBM C++ Runtime Environment Components for AIX
March 2006 XL C/C++ Enterprise Edition V8.0 for AIX PTF
May 2008 XL C/C++ Enterprise Edition V8.0 for AIX PTF
February 2008 XL C/C++ Enterprise Edition V8.0 for AIX PTF
August 2008 XL C/C++ Enterprise Edition V8.0 for AIX PTF
March 2006 IBM C++ Runtime Environment Components for AIX
November 2008 XL C/C++ Enterprise Edition V8.0 for AIX PTF
January 2006 IBM C++ Runtime Environment Components for AIX
February 2007 XL C/C++ Enterprise Edition V8.0 for AIX PTF
November 2007 XL C/C++ Enterprise Edition V8.0 for AIX PTF
August 2006 IBM C++ Runtime Environment Components for AIX
August 2006 XL C/C++ Enterprise Edition V8.0 for AIX PTF
May 2006 XL C/C++ Enterprise Edition V8.0 for AIX PTF
April 2007 VisualAge C++ Professional V6.0 for AIX PTF
April 2007 IBM C++ Runtime Environment Components for AIX
October 2006 IBM C++ Runtime Environment Components for AIX
September 2005 IBM C++ Runtime Environment Components for AIX
July 2009 XL C/C++ Enterprise Edition V8.0 for AIX PTF
October 2009 XL C/C++ Enterprise Edition V8.0 for AIX PTF

 

APAR status

  • Closed as program error.

Error description

  • -qeh=v6 user who have nasted try-catch where the catch handler
    is exited via a break/continue/goto statement.
    
    Core dump at runtime in nested loop and try block when compiling
    and running the following source code:
    Testcase:
    --------
    #include <iostream>
    using namespace::std;
    int func() {
        int retry;
        int i = 0;
        do {
            retry = 0;
            for( ; i < 1 ; i++ ) {
                try {
                    try {
                        throw 2;
                    } catch( const int& ex1 ) {
                        cout << "finc1:int exception : "<< ex1 <<
    endl;
                        retry = 1;
                        break;
                    }
                } catch( const char& ex2 ) {
                    cout << "func2:char exception : " << ex2 <<endl;
                }
            }
        } while(retry);
        return 1;
    }
    int main(int argc, char* const* argv) {
        int rc = 0;
        try{
            throw 1;
        }catch( const int& ex3 ) {
            cout << "main:int exception : " << ex3 << endl;
            rc = func();
        }
        return rc;
    }
    $ xlC -g -c tp1.C
    $ xlC -o tp1 tp1.o
    $ ./tp1
    main:int exception : 1
    finc1:int exception : 2
    Abort(coredump)
    

Local fix

  • To work around the problem, -qeh=v5 can be used. Or do not use
    break/continue to exit from catch handler.
    

Problem summary

  • Same as submitter's text
    

Problem conclusion

  • The logic that was causing the runtime abend for nested
    try-catch where the catch handler is exited via a
    break/continue/goto statement is now fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IY76552

  • Reported component name

    VA C++ PROF FOR

  • Reported component ID

    5765F5600

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2005-09-14

  • Closed date

    2005-09-14

  • Last modified date

    2007-04-30

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

    IY72223

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

Fix information

  • Fixed component name

    VA C++ PROF FOR

  • Fixed component ID

    5765F5600

Applicable component levels

  • R600 PSY U811610

       07/04/30 I 1000

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page

Please take a moment to complete this form to help us better serve you.

This material provides me with the information I need.






This material is clear and easy to understand.






Did the information help you to achieve your goal?

What updates, improvements, or related information would you like to see in this document?

Your response will be used to improve our document content. Requests for assistance, if applicable, should be submitted through your normal support channel as we cannot respond from this site.


Input the verification number to submit feedback:



Document information

Product categories:

Software

Software Development

Analysis, Modeling, Design & Construction

VisualAge C++

Compiler


Software version:

600


Reference #:

IY76552


IBM Group:

Software Group


Modified date:

2007-04-30

Translate my page