A fix is available
APAR status
Closed as new function.
Error description
Quality Improvements
Local fix
N/A
Problem summary
**************************************************************** * USERS AFFECTED: 1. Users who need to provide the location of * * the customization file. * * 2. Users of foreign exception. * * 3. Users with private constants and relying * * on rent support. * * 4. Users with operator== for an enum * * parameter with a bool enum base and no * * enumerator list * **************************************************************** * PROBLEM DESCRIPTION: 1. Prior to this fix there was no * * mechanism for this. * * 2. The current exception handling * * mechanism does not handle foreign * * exceptions * * 3. Private constants are treated as * * rent * * 4. The compiler crashes when parsing * * operator== for an enum parameter with * * a bool enum base and no enumerator * * list. For example: * * enum Foo : bool; * * bool bar(Foo a, Foo b) { return a == * * b; } * **************************************************************** * RECOMMENDATION: Install the PTF * **************************************************************** 1. The customization file is not needed when the system installation uses the default settings. However if that is not the case, this fix will provide a way to provide customization file . 2. The current exception handling mechanism catches a foreign exception (e.g., from objects generated by other compilers) with the catch (...) clause and then tries to delete the foreign exception object which leads to System Completion Code=0C4). 3. Private constants should not be treated as rent 4. The operator== for an enum parameter with a bool enum base and no enumerator list should be accepted by compiler.
Problem conclusion
1. The CLANG_CONFIG_PATH environment variable was created which can be set to location of 'clang.cfg' the customization file for the compiler to use instead of the default one. 2. This fix modifies the personality routine so foreign exceptions result with no handler and calling the terminate function from the foreign runtime. 3. Private constants are not marked as rent 4. The compiler accepts operator== in case stated above.
Temporary fix
Comments
APAR Information
APAR number
PH50622
Reported component name
C/C++ FOR MVS
Reported component ID
56551210A
Reported release
7C2
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2022-11-02
Closed date
2022-11-04
Last modified date
2022-12-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI83129
Modules/Macros
CNWPHPAX CNWSNPAX
Fix information
Fixed component name
C/C++ FOR MVS
Fixed component ID
56551210A
Applicable component levels
R7C2 PSY UI83129
UP22/11/22 P F211
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSTLTF","label":"z\/OS XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7C2","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]
Document Information
Modified date:
01 December 2022