Fixes are available
March 2009 Update for XL C/C++ for Linux, V10.1
October 2009 Update for XL C/C++ for Linux, V10.1
June 2011 Update for XL C/C++ for Linux, V10.1
XL C/C++ for Linux Fix Pack 8 (January 2014 Update) for 10.1
August 2010 Update for XL C/C++ for Linux, V10.1
January 2011 Update for XL C/C++ for Linux, V10.1
January 2012 Update for XL C/C++ for Linux, V10.1
July 2012 Update for XL C/C++ for Linux, V10.1
APAR status
Closed as program error.
Error description
The following test case causes the compiler to produce an internal compiler error with the following compile line: Compile line: xlC_r -O -qipa -c test.cpp ====Start of test.cpp===== typedef unsigned long size_t; class RexxArray; class RexxString; class RexxObject; class RexxMessage; typedef RexxObject * (RexxObject::*PCPPMC1)(RexxObject **, size_t); class RexxObject { public: RexxMessage *start(RexxObject **, size_t); }; class RexxArray : public RexxObject { public: void * operator new(size_t, size_t, RexxObject **); inline void operator delete(void *, size_t, RexxObject **) {;} inline RexxArray() { ; }; }; class RexxMessage : public RexxObject { public: RexxMessage(RexxObject *, RexxObject *, RexxArray *); RexxObject *start(RexxObject *); }; RexxMessage *RexxObject::start( RexxObject **arguments, size_t argCount) { RexxMessage *newMessage; RexxString *newMsgName; RexxObject *message = arguments[0]; newMessage = new RexxMessage(this, message, new (argCount - 1, arguments + 1) RexxArray); return newMessage; } ======End of test.cpp=============
Local fix
n/a
Problem summary
C++ customers using exceptions and optimization with inlining on all platforms maybe affected by this issue. Compiler produces an internal compiler error under specific conditions where inlining removes a try / catch block.
Problem conclusion
Fixed the exception handling state table functions so that when a try / catch block is removed the state table entries are not left in an invalid state.
Temporary fix
Comments
APAR Information
APAR number
LI74412
Reported component name
XL C/C++ RHEL52
Reported component ID
5724U8310
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-03-31
Closed date
2009-03-31
Last modified date
2009-03-31
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++ RHEL52
Fixed component ID
5724U8310
Applicable component levels
RA10 PSN LI74314
UP06/09/13
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A.1","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]
Document Information
Modified date:
16 October 2021