Fixes are available
APAR status
Closed as program error.
Error description
When inline assembly (asm("")) is used in a compilation unit, the C++ compiler does not handle C++ exceptions correctly. The symptoms range from exceptions not being thrown, to not being caught correctly, to segmentation faults. Consider the following testcase test.cc: ///////////// test.cc ////////////////// #include <cstdio> #include <exception> using namespace std; void junk() { asm("nop"); } int main(int argc, char** argv) try { throw std::exception(); } catch (...) { puts("Caught Exception"); } /////////////////////////////////////// Compile testcase: $xlC test.cc Execute the binary: $./a.out Segmentation fault
Local fix
N/A
Problem summary
parts of ehframe descriptor are missing or wrong in inline asm
Problem conclusion
recommended for C++ users who also use inline asm
Temporary fix
Comments
APAR Information
APAR number
IV24389
Reported component name
XL C FOR AIX
Reported component ID
5724X1200
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-07-05
Closed date
2012-07-05
Last modified date
2012-07-05
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL C FOR AIX
Fixed component ID
5724X1200
Applicable component levels
RB10 PSY U852940
UP C
Rate this page:
Average rating
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.