APAR status
Closed as program error.
Error description
A wide character, wchar_t, array initialized with a braced value is initialized to NULL. === TEST CASE === #include <stdio.h> #include <wchar.h> int main() { char a1[] = "hello"; char a2[] = {"there"}; printf("a1 %s a2 %s %lu\n", a1, a2, sizeof(wchar_t)); wchar_t s1[] = L"hello"; wchar_t s2[] = {L"there"}; // NULLed out printf("s1 %ls s2 %ls\n", s1, s2); return 0; } $ xlc char.c $ ./a.out a1 hello a2 there 4 s1 hello s2 $ Expected Output: a1 hello a2 there 4 s1 hello s2 there
Local fix
Do not use braced list initializer for wchar_t type
Problem summary
PROBLEM DESCRIPTION: The wchar_t type is interpretted incorrectly within the compiler, causing incorrect code to be generated for the initializer. USERS AFFECTED: Users of wchar_t arrays with braced initializers.
Problem conclusion
The type interpretation was corrected and the initializer now works correctly.
Temporary fix
Comments
APAR Information
APAR number
LI80739
Reported component name
XL C/C++ LINUX
Reported component ID
5725C7310
Reported release
G11
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-04-16
Closed date
2019-06-21
Last modified date
2019-06-21
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++ LINUX
Fixed component ID
5725C7310
Applicable component levels
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"G11","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
21 June 2019