Fixes are available
XL C/C++ for AIX Fix Pack 7 (January 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 8 (March 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 11 (February 2015 PTF) for 12.1
XL C/C++ for AIX Fix Pack 12 (May 2015 PTF) for 12.1
XL C/C++ for AIX Fix Pack 13 (August 2015 Update) for 12.1
XL C/C++ for AIX Fix Pack 14 (December 2015 Update) for 12.1
XL C/C++ for AIX Fix Pack 15 (April 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 16 (July 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 17 (November 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 18 (February 2017 Update) for 12.1
XL C/C++ for AIX Fix Pack 19 (August 2017 Update) for 12.1
XL C/C++ for AIX Fix Pack 20 (March 2018 Update) for 12.1
XL C/C++ for AIX Fix Pack 6 (December 2013 PTF) for 12.1
XL C/C++ for AIX Fix Pack 9 (July 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 10 (October 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 21 (January 2019 Update) for 12.1
APAR status
Closed as program error.
Error description
When declaring a pointer as restrict through more than one level of typedef, the parser incorrectly believes the underlying type is not a pointer and issues the warning 1540-2606. ===== TESTCASE: $cat xlc12_defect_restricttypedef.cpp typedef signed * signed_ptr; typedef signed_ptr key_type; void func01(signed * __restrict__ p); //========>OK void func02(signed_ptr __restrict__ p); //========>OK void func03(key_type __restrict__ p); //========>BAD!! xlC -q'sourcetype=c++' xlc12_defect_restricttypedef.cpp -c "xlc12_defect_restricttypedef.cpp", line 13.6: 1540-2606 (W) "restrict" can only qualify a pointer or reference type. The "restrict" keyword is ignored. C compiler behavior is correct which compiles the file clean.
Local fix
Avoid multiple level of typedef. This is only a warning and does not stop compilation.
Problem summary
PROBLEM DESCRIPTION: Multiple typedef is hiding the restrict attribute from the error checking. USERS AFFECTED: All users using multiple typedefs on restrict
Problem conclusion
The issue has been solved.
Temporary fix
Comments
APAR Information
APAR number
IV47945
Reported component name
XL C/C++ FOR AI
Reported component ID
5725C7200
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2013-09-05
Closed date
2013-12-13
Last modified date
2013-12-13
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++ FOR AI
Fixed component ID
5725C7200
Applicable component levels
Document Information
Modified date:
03 October 2021