A fix is available
APAR status
Closed as program error.
Error description
When optimization with inlining is used, an exception thrown within a function (with no try/catch), is not caught by it's caller function's try/catch block. The exception is, instead, cascaded back one more caller level, to the caller's caller try/catch block. === EXAMPLE === void throw_here() { throw MyException(); } void should_catch_here() { try { switch (some_val) { case 1: return 0; case 2: throw_here(); break; } } catch (MyException& m) { // Exception should be caught here } } int main() { try { should_catch_here(); } catch(...) { // Exception is caught here instead when INLINE is used } } Note: Test example is not compilable
Local fix
Do not use inlining.
Problem summary
**************************************************************** * USERS AFFECTED: All users of xlC++ compiler with * * versions V2R1, V2R1M1. * **************************************************************** * PROBLEM DESCRIPTION: When inlining a function, switch * * statement cases' exception state * * corrupts downstream switch case state * * for the purpose of state merge of * * inlined function. * **************************************************************** * RECOMMENDATION: * ****************************************************************
Problem conclusion
Apply provided service.
Temporary fix
Comments
APAR Information
APAR number
LI78466
Reported component name
XL C/C++ FOR LI
Reported component ID
5725C7300
Reported release
D10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-02-25
Closed date
2015-02-25
Last modified date
2015-02-25
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
CCNEPP
Fix information
Fixed component name
XL C/C++ FOR LI
Fixed component ID
5725C7300
Applicable component levels
RD10 PSN PI24418
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":"13.1","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
17 October 2021