IBM Support

PH68699: INCORRECT DYNAMIC_CAST NULL RETURN ON CAST WITH DUPLICATE TYPE_INFO IN SEPARATE MODULES

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A dynamic_cast fails with a NULL return value on an expected
    successful cast using a target type found in two separate
    modules (main executable and DLL, or two DLLs).
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Open XL C/C++ 2.1 particularly      *
    *                 those                                        *
    *                 employing dynamic_cast or exception          *
    *                 handling involving the casting               *
    *                 and comparison of type_info objects across   *
    *                 DLL boundaries,                              *
    *                 may encounter discrepancies.                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: The type_info objects across DLL        *
    *                      boundaries,                             *
    *                      even when referring to identical        *
    *                      object have different addresses         *
    *                      and not treated as equivalent.          *
    ****************************************************************
    * RECOMMENDATION: After applying the PTF,                      *
    *                 recompile the entire application if any of   *
    *                 the following                                *
    *                 type_info object functions are utilized:     *
    *                 before(), hash_code(), operator==, or        *
    *                 operator!=.                                  *
    *                 This measure ensures compatibility and       *
    *                 correct behaviour                            *
    *                 of these functions post-PTF installation.    *
    ****************************************************************
    The compiler will perform string comparison
    of type_info when comparing their addresses fail to make sure
    type_info across DLL boundaries are found to be equivalent.
    

Problem conclusion

  • The addition of comparing `__type_name_t` is encoding
    sensitive.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH68699

  • Reported component name

    C/C++ FOR MVS

  • Reported component ID

    56551210A

  • Reported release

    7C3

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2025-10-27

  • Closed date

    2025-11-26

  • Last modified date

    2025-12-12

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PH69176 UO05986

Modules/Macros

  • CNW$P0X  CNWC002  CNWC004  CNWC005  CNWC006  CNWC007  CNWC009
    CNWC00A  CNWC00C  CNWC010  CNWC011  CNWC014  CNWC015  CNWC016
    CNWC019  CNWC01B  CNWC01C  CNWCH002 CNWCH003 CNWCH004 CNWCH006
    CNWCH007 CNWCH009 CNWCH010 CNWCH011 CNWCH012 CNWCH013 CNWCH014
    CNWCH015 CNWCH018 CNWCH019 CNWCH01C CNWCH01F CNWCH020 CNWCH021
    CNWCH023 CNWCH024 CNWCH026 CNWCH027 CNWCH029 CNWCH02D CNWISMKD
    CNWJIVP2 CNWLDMD  CNWMKDIR CNWPH003 CNWPH005 CNWPH006 CNWPH007
    CNWPH00A CNWPH00B CNWPH00E CNWPH013 CNWPH014 CNWPH016 CNWPH018
    CNWPH01B CNWPH01C CNWPH020 CNWPH021 CNWPH022 CNWPH025 CNWPH028
    CNWPH029 CNWPH02B CNWPH030 CNWPH032 CNWPH036 CNWPH039 CNWPH03A
    CNWPH03B CNWPH03D CNWPH03E CNWPH03F CNWPH040 CNWPH041 CNWPH043
    CNWPH048 CNWPH049 CNWPH04B CNWPH04D CNWPH04F CNWPH051 CNWPH053
    CNWPH055 CNWPH058 CNWPH059 CNWPH05A CNWPH05B CNWPH05D CNWPH05F
    CNWPH061 CNWPH063 CNWPH065 CNWPH066 CNWPH067 CNWPH068 CNWPH069
    CNWPH06A CNWPH06C CNWPH06D CNWPH06F CNWPH074 CNWPH078 CNWPH07B
    CNWPH07C CNWPH07F CNWPH080 CNWPH082 CNWPH085 CNWPH087 CNWPH088
    CNWPH08A CNWPH08B CNWPH08C CNWPH090 CNWPH093 CNWPH094 CNWPH095
    CNWPH096 CNWPH098 CNWPH09A CNWPH09E CNWPH09F CNWPH0A1 CNWPH0A3
    CNWPH0A7 CNWPH0A9 CNWPH0AD CNWPH0B0 CNWPH0B1 CNWPH0B3 CNWPH0B4
    CNWPH0B5 CNWPH0B6 CNWPH0B7 CNWPH0B9 CNWPH0BF CNWPH0C1 CNWPH0C2
    CNWPH0C7 CNWPH0C8 CNWPH0C9 CNWPH0CA CNWPH0CC CNWPH0CD CNWPH0CF
    CNWPH0D1 CNWPH0D2 CNWPH0D6 CNWPH0D8 CNWPH0DC CNWPH0DD CNWPH0DE
    CNWPH0DF CNWPH0E0 CNWPH0E1 CNWPH0E2 CNWPH0E3 CNWPH0E5 CNWPH0E7
    CNWPH0E8 CNWPH0E9 CNWPH0EB CNWPH0EC CNWPH0ED CNWPH0EE CNWPH0F0
    CNWPH0F5 CNWPH0F7 CNWPH0F8 CNWPH0F9 CNWPH0FB CNWPH0FC CNWPH0FD
    CNWPH0FE CNWPH0FF CNWPH100 CNWPH101 CNWPH106 CNWPH111 CNWPH112
    CNWPH113 CNWPH115 CNWPH117 CNWPH11A CNWPH11B CNWPH11C CNWPH11E
    CNWPH11F CNWPH121 CNWPH122 CNWPH123 CNWPH124 CNWPH125 CNWPH126
    CNWPH129 CNWPH12D CNWPH130 CNWPH131 CNWPH132 CNWPH133 CNWPH135
    CNWPH138 CNWPH13A CNWPH13E CNWPH140 CNWPH144 CNWPH146 CNWPH149
    CNWPH14A CNWPH150 CNWPH153 CNWPH154 CNWPH156 CNWPH157 CNWPH158
    CNWPH159 CNWPH15A CNWPH15C CNWPH15D CNWPH15E CNWPH162 CNWPH164
    CNWPH165 CNWPH16A CNWPH16E CNWPH16F CNWPH170 CNWPH172 CNWPH174
    CNWPH175 CNWPH178 CNWPH179 CNWPH17A CNWPH17D CNWPH17F CNWPH180
    CNWPH181 CNWPH187 CNWPH188 CNWPH189 CNWPH18B CNWPH18F CNWPH190
    

Fix information

  • Fixed component name

    C/C++ FOR MVS

  • Fixed component ID

    56551210A

Applicable component levels

  • R7C3 PSY UO05986

       UP25/12/12 I 1000

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":"7C3","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
12 December 2025