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
typedef function syntax causing Internal Compiler Error. This happens when the compiler tries to to compile the line "(this->*some_functions [*count++]) ();" TESTCASE: --------- class Test { public: void some_function(); void foo1(); void foo2(); void foo3(); }; void Test::foo1(){} void Test::foo2(){} void Test::foo3(){} typedef void (Test::*classfunc) (void); static classfunc some_functions [] = { &Test::foo1, &Test::foo2, &Test::foo3 }; void Test::some_function() { int *count; (this->*some_functions [*count++]) (); } int main() { class Test test_class; test_class.some_function(); }
Local fix
Replace "*count++" with a temp variable, i.e. void Test::some_function() { int *count; int temp=*count++; (this->*some_functions [temp]) (); }
Problem summary
Pointer-to-member function calls with side effects such as (p->*a[i++])() causes the compiler to fail by producing internal Compiler error.
Problem conclusion
The side-effects are now processed properly and the pointer-to-member function call implemented correctly. Install the PTF to get the fix.
Temporary fix
Comments
APAR Information
APAR number
LI74312
Reported component name
XL C/C++ SLES10
Reported component ID
5724U8300
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++ SLES10
Fixed component ID
5724U8300
Applicable component levels
RA10 PSN IZ42531
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