A fix is 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
IV16437
Reported component name
XLC C++ AIX
Reported component ID
5724S7100
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-02-29
Closed date
2012-02-29
Last modified date
2012-02-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
XLC C++ AIX
Fixed component ID
5724S7100
Applicable component levels
R900 PSN U850791
UP06/09/13 C
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]
Document Information
Modified date:
29 February 2012