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
LI77057
Reported component name
XL C/C++ FOR LI
Reported component ID
5724X1400
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2012-10-10
Closed date
2012-10-10
Last modified date
2012-10-10
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/C++ FOR LI
Fixed component ID
5724X1400
Applicable component levels
RB10 PSN LI76731
UP06/09/13
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B10","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
14 October 2021