Fixes are available
May 2012 PTF for XL C/C++ for AIX, V10.1
January 2013 PTF for XL C for AIX, V10.1
January 2013 PTF for XL C/C++ for AIX, V10.1
XL C/C++ for AIX Fix Pack 18 (July 2013 PTF) for 10.1
XL C/C++ for AIX Fix Pack 19 (October 2013 PTF) for 10.1
XL C/C++ for AIX Fix Pack 21 (October 2015 PTF) for 10.1
XL C for AIX Fix Pack 21 (October 2015 PTF) for 10.1
May 2011 PTF for XL C/C++ for AIX, V10.1
May 2011 PTF for XL C for AIX, V10.1
October 2011 PTF for XL C/C++ for AIX, V10.1
October 2011 PTF for XL C for AIX, V10.1
February 2012 PTF for XL C for AIX, V10.1
February 2012 PTF for XL C/C++ for AIX, V10.1
May 2012 PTF for XL C for AIX, V10.1
September 2012 PTF for XL C for AIX, V10.1
September 2012 PTF for XL C/C++ for AIX, V10.1
XL C for AIX Fix Pack 18 (July 2013 PTF) for 10.1
XL C for AIX Fix Pack 19 (October 2013 PTF) for 10.1
XL C for AIX Fix Pack 20 (October 2014 PTF) for 10.1
XL C/C++ for AIX Fix Pack 20 (October 2014 PTF) for 10.1
APAR status
Closed as program error.
Error description
When inlining with -q64, a compiler warning is generated indicating that inlining has failed. In most cases, this warning will not appear if compiling with -q32. ===== Test Case: test.c: struct fred { int jjj; } freddy; static inline long bar(struct fred fff, int kkk) { return fff.jjj+kkk; } main() { long bbb; freddy.jjj = 3; bbb = bar(freddy,2); printf("bbb = %d (should be 5)\n",bbb); } ====================== ===== Observed Output: $ xlc -q64 -O2 -c test.c 1500-029: (W) WARNING: subprogram bar could not be inlined into main. $ xlc -q32 -O2 -c test.c $
Local fix
In most cases, compiling with -q32 will hide the problem.
Problem summary
PROBLEM DESCRIPTION: Failure to inline. If you pass a structure by value and the size of the structure is not a multiple of the size of a register, then the compiler refuses to inline because it thinks there is a type mismatch. This is more likely to happen with -q64 but it can happen with -q32. USERS AFFECTED: Users who depend on inlining.
Problem conclusion
The fix is to compare the size of the rounded up parameter with the size of the argument before issuing a diagnostic and refusing to do the inlining.
Temporary fix
Comments
APAR Information
APAR number
IZ97842
Reported component name
XL C AIX
Reported component ID
5724U8000
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-03-31
Closed date
2011-03-31
Last modified date
2011-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 AIX
Fixed component ID
5724U8000
Applicable component levels
Document Information
Modified date:
06 October 2021