IBM Support

LI77054: INCORRECT FUNCTION SIGNATURE FROM TYPEID

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The C++ typeid feature is returning an incorrect function
    signature string.  The string returned from the typeid name()
    method is not distinguishing between functions with and
    without exception specifiers.
    
    
       ===== TEST CASE =====
    
     ----------------------------------------------
     extern int *withthrow() throw ();
     extern int *nothrow() ;
    
         std::string sg2 = typeid(withthrow).name();
         std::string sf2 = typeid(nothrow).name();
    
         printf("%s # %s\n", sf2.c_str(), sg2.c_str());
    
     OUTPUT ===>> "int *() throw() # int *() throw()"
     ----------------------------------------------
     extern int *withthrow() throw ();
     extern int *nothrow();
    
         std::string sg2 = typeid(nothrow).name();
         std::string sf2 = typeid(withthrow).name();
    
         printf("%s # %s\n", sf2.c_str(), sg2.c_str());
    
     OUTPUT ===>> "int *() # int *()"
     ----------------------------------------------
    

Local fix

Problem summary

  • PROBLEM DESCRIPTION:
    Exception specification is included in typeid for a function
    causing inconsistency.
    
    USERS AFFECTED:
    Users depending on the typeid output for functions with
    exception specifications.
    

Problem conclusion

  • The problem has been resolved, and the exception specification
    is no longer output in the typeid name.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI77054

  • 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-10-10

  • Closed date

    2012-10-10

  • Last modified date

    2012-10-10

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

    IV22256

  • 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

[{"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:
14 October 2021