Fixes are available
XL C/C++ for Blue Gene/Q Fix Pack 12 (May 2015 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 14 (May 2016 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 15 (October 2017 Update) for 12.1
May 2013 Update for XL C/C++ for Blue Gene/Q, V12.1
XL C/C++ for Blue Gene/Q Fix Pack 5 (August 2013 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 6 (November 2013 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 7 (February 2014 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 8 (May 2014 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 9 (August 2014 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 10 (November 2014 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 11 (February 2015 Update) for 12.1
XL C/C++ for Blue Gene/Q Fix Pack 13 (August 2015 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
LI77404
Reported component name
XL C/C++ FOR BG
Reported component ID
5799AG100
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2013-05-29
Closed date
2013-05-29
Last modified date
2013-05-29
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 BG
Fixed component ID
5799AG100
Applicable component levels
Document Information
Modified date:
05 September 2024