Fixes are available
APAR status
Closed as program error.
Error description
Defining _ILS_MACROS enables the inline function-like macros for functions defined in <ctype.h>. Attempting to use the C++ compliant wrapper <cctype> with _ILS_MACROS enabled will result in a syntax error if the ctype functions are called using the std namespace qualifier. << Example Code >> 16 a = std::isupper(b); << Preprocessing >> 16 a = std::(((b)>=0&&(b)<=256) ? ((__lc_ctype).obj->mask[b]&0x400):0); << ERROR >> "test.cpp", line 16.18:1540-0063 (S) The text "(" is unexpected. The syntax error is cause by the std namespace no longer having a member to refer to due to the expanded function-like macro.
Local fix
- Use <ctype.h> and no namespace in C++ when using _ILS_MACROS
Problem summary
PROBLEM DESCRIPTION: Usage of the _ILS_MACROS macro replaces ctype function calls with inline macros. This is done for performance reasons by avoiding C runtime function call overhead. The macro substitution is causing an error when specifing the std namespace. USERS AFFECTED: Users who define _ILS_MACROS
Problem conclusion
Inline functions were added to the <cctype> header file to enable the macro versions of the ctype functions when specifying the std namespace. Defining _ILS_MACROS with <cctype> will now require function inlining to be enabled (-Q or -qinline) to inline the ctype functions.
Temporary fix
Comments
APAR Information
APAR number
LI76788
Reported component name
XL C/C++ FOR LI
Reported component ID
5724X1400
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2012-05-24
Closed date
2012-05-24
Last modified date
2012-05-24
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
5724X1400
Applicable component levels
RB10 PSN IV10513
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":"B10","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
17 October 2021