IV47945: INCORRECT WARNING FOR "RESTRICT" WITH TYPEDEF
Fixes are available
XL C/C++ for AIX Fix Pack 6 (December 2013 PTF) for 12.1
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 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 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
Closed as program error.
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.
Avoid multiple level of typedef. This is only a warning and does not stop compilation.
PROBLEM DESCRIPTION: Multiple typedef is hiding the restrict attribute from the error checking. USERS AFFECTED: All users using multiple typedefs on restrict
The issue has been solved.
Reported component name
XL C/C++ FOR AI
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
XL C/C++ FOR AI
Fixed component ID
Applicable component levels
RC10 PSY U863925