Fixes are available
January 2011 PTF for XL C/C++ for AIX, V11.1
May 2011 PTF for XL C for AIX, V11.1
May 2011 PTF for XL C/C++ for AIX, V11.1
August 2011 PTF for XL C/C++ for AIX, V11.1
November 2011 PTF for XL C/C++ for AIX, V11.1
January 2012 PTF for XL C for AIX, V11.1
January 2012 PTF for XL C/C++ for AIX, V11.1
April 2012 PTF for XL C for AIX, V11.1
April 2012 PTF for XL C/C++ for AIX, V11.1
July 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C for AIX, V11.1
October 2012 PTF for XL C/C++ for AIX, V11.1
February 2013 PTF for XL C for AIX, V11.1
February 2013 PTF for XL C/C++ for AIX, V11.1
XL C/C++ for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 22 (September 2015 PTF) for 11.1
XL C for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C for AIX Fix Pack 24 (September 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 24 (September 2016 PTF) for 11.1
January 2011 PTF for XL C for AIX, V11.1
August 2011 PTF for XL C for AIX, V11.1
November 2011 PTF for XL C for AIX, V11.1
July 2012 PTF for XL C for AIX, V11.1
XL C for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 22 (September 2015 PTF) for 11.1
APAR status
Closed as program error.
Error description
When trying to compile a small test case using -qhot and/or -qipa, compilation hangs. It appears that during compilation, the compiler becomes trapped within an infinite loop. Test case hangs in the same location when the following options are used: 1) -qhot=level=1 2) -qhot=level=0 -qipa=level=2 ========== Test Case: void rounds(unsigned short *a,unsigned short *b,unsigned int r) { unsigned short ai, bi, aandb, axorb, carry, z; int i; while (r > 0) { /* add x[0....] into x[1....]: */ carry = 0; for (i = 0;i < 32;++i) { ai = a[i]; bi = b[i]; aandb = ai & bi; axorb = ai ^ bi; b[i] = axorb ^ carry; carry &= axorb; carry |= aandb; } /*rotate x[0....] upwards by 11 bits, and swap 0.0.. with 0.1..:*/ i = 0; ai = a[i]; do { z = ((ai >> 4) & 0x0f0f) | ((ai & 0x0f0f) << 4); i = (i + 11) & 31; ai = a[i]; a[i] = z; } while (i != 0); /*xor x[1....] into x[0....], and swap 1...0 with 1...1:*/ for (i = 0;i < 32;++i) { bi = b[i]; a[i] ^= bi; b[i] = ((bi >> 1) & 0x5555) | ((bi & 0x5555) << 1); } --r; } } =====================
Local fix
Compile with: "-qhot=level=0" or "-qhot=level=0 -qipa=level=0" or "-qhot=level=0 -qipa=level=1" Another workaround is to either increase or decrease the limit on the second 'for' loop. Ensure that the limit is not 32.
Problem summary
PROBLEM DESCRIPTION: There is an infinite loop in the compiler when attempting to build the Acyclic DDG, used by loop fusion. USERS AFFECTED: Any users using -qhot.
Problem conclusion
Problem should be fixed.
Temporary fix
Comments
APAR Information
APAR number
IZ91491
Reported component name
XL C FOR AIX
Reported component ID
5724X1200
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-01-03
Closed date
2011-01-03
Last modified date
2011-01-05
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 FOR AIX
Fixed component ID
5724X1200
Applicable component levels
Document Information
Modified date:
06 October 2021