Fixes are available
April 2013 Update for XL C/C++ for Linux, V12.1
XL C/C++ for Linux Fix Pack 8 (October 2015 Update) for 12.1
XL C/C++ for Linux Fix Pack 4 (October 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 5 (December 2013 Update) for 12.1
XL C/C++ for Linux Fix Pack 6 (February 2014 Update) for 12.1
XL C/C++ for Linux Fix Pack 7 (May 2014 Update) for 12.1
APAR status
Closed as program error.
Error description
The above test case tries to use %a, %A, %j, %t, %z printf format specifiers introduced by C99. XLC/C++ compilers work correctly - test case compiles and runs with expected output. However, during compilation, C/C++ gives out the following informational/warning messages when -qformat=all -qinfo=all is present: 1540-2839 (I) The platform does not support the use of a non-portable extension character 'j' in the format. This informational message is incorrect and unnecessary. ====TEST CASE: $cat xlc12_defect_format_conversion.c #include <stdio.h> #include <stdint.h> #include <stddef.h> signed main(void) { printf("%A\n", 10.5); printf("%a\n", 10.5); printf("%ju\n", (uintmax_t)1000000); printf("%td\n", (ptrdiff_t)1000000); printf("%zu\n", (size_t)1000000); return 0; } $ xlc -qlanglvl=extc1x -qinfo=all -qformat=all xlc12_defect_format_conversion.c $xlC -qsourcetype=c++ -qlanglvl=extended0x -qinfo=all -qformat=all xlc12_defect_format_conversion.c ====ACTUAL OUTPUT: "xlc12_defect_format_conversion.c", line 73.10: 1540-2839 (I) The platform does not support the use of a non-portable extension character 'A' in the format. "xlc12_defect_format_conversion.c", line 74.10: 1540-2839 (I) The platform does not support the use of a non-portable extension character 'a' in the format. "xlc12_defect_format_conversion.c", line 81.10: 1540-2839 (I) The platform does not support the use of a non-portable extension character 'j' in the format. "xlc12_defect_format_conversion.c", line 81.10: 1540-2845 (W) Invalid uintmax_t format for unsigned long long argument type in argument 2. "xlc12_defect_format_conversion.c", line 87.10: 1540-2839 (I) The platform does not support the use of a non-portable extension character 't' in the format. "xlc12_defect_format_conversion.c", line 93.10: 1540-2839 (I) The platform does not support the use of a non-portable extension character 'z' in the format. ====EXPECTED OUTPUT: None of these Informational Messages.
Local fix
N/A
Problem summary
PROBLEM DESCRIPTION: The compiler was issuing out-of-date informational messages for printf format specifiers that are now part of the C99 standard. USERS AFFECTED: Users of -qinfo=all -qformat=all looking for information about non-portable format specifiers
Problem conclusion
The messages have been updated to include C99 format specifiers Aatjuz
Temporary fix
Comments
APAR Information
APAR number
LI77349
Reported component name
XL C/C++ FOR LI
Reported component ID
5725C7300
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2013-04-27
Closed date
2013-04-27
Last modified date
2013-04-27
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 LI
Fixed component ID
5725C7300
Applicable component levels
RC10 PSN IV35873
UP06/09/13
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.1","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
14 October 2021