Fixes are available
March 2009 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
August 2009 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
May 2010 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
December 2010 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
XL C/C++ Advanced Edition for Blue Gene/P Fix Pack 17 (October 2013 Update) for 9.0
April 2011 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
August 2011 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
April 2012 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
August 2012 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0
APAR status
Closed as program error.
Error description
The following reduced test case will generate internal compiler error if compiled with xlC v9 with optimization on. t.C struct IUnknown { virtual void AddRef() = 0; }; struct CATVpmTPAssocPair { CATVpmTPAssocPair(const IUnknown *p) { if (p!=0) ((IUnknown*)p)->AddRef(); } }; void f() { CATVpmTPAssocPair foo((0)); } xlC t.C -O2 -c 1501-230 (S) Internal compiler error; please contact your Service Representative
Local fix
Change CATVpmTPAssocPair foo((0)); => CATVpmTPAssocPair foo(0); (Remove the extra parenthesis ()).
Problem summary
Programs with virtual function calls made through member expression in the form of paranthesized null pointer compiled with -O2 will generate compiler internal error. When the compiler inlined the null pointer through which the program made the virtual function call, the transformation unwound the expression to a literal expression of type int where it should have a pointer type and hence the compler generates internal compiler error.
Problem conclusion
The problem is fixed.
Temporary fix
Comments
APAR Information
APAR number
LI74247
Reported component name
XL C/C++ AE BG/
Reported component ID
5799HJE00
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-03-20
Closed date
2009-03-20
Last modified date
2009-03-20
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++ AE BG/
Fixed component ID
5799HJE00
Applicable component levels
R900 PSN IZ28790
UP06/09/13
Document Information
Modified date:
16 October 2021