IBM Support

IJ27128: INTERNAL COMPILER ERROR WITH NESTED CONDITIONAL EXPRESSIONS WITHNEW OPERATOR

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • An internal compiler error is encountered when compiling with
    the xlclang++ invocation and optimization, involving code using
    the new operator with a series of conditional expressions.
    
    
       === TEST CASE ===
    
    struct T { ~T(); };
    
    void bar();
    
    struct MyDeclConnectionPool
    {
    MyDeclConnectionPool(
        const T& nqS,
        const T& s,
        const T& strRequiredVersion,
        const T& strExternalizedConnectionName);
    };
    
    void foo(bool b, int i) {
      switch (i) {
      case 1057:
       new MyDeclConnectionPool(T(), T(), b ? T() : T(), b ? T() :
    T());
       bar();
       break;
      }
    }
    
    
    $ xlclang++ -c -O2 smpreduce.cpp
    1500-004: (U) INTERNAL COMPILER ERROR while compiling foo(bool,
    int).  Compilation ended.  Contact your Service Representative
    and provide the following information: Internal abort. For more
    information visit:
    http://www.ibm.com/support/docview.wss?uid=swg21110810
    $
    

Local fix

  • - Lower the optimization level
    - Compile with -qnoeh to disable exception handling
    

Problem summary

  • PROBLEM DESCRIPTION:
    Some new expressions containing multiple nested conditional
    paths with temporary construction/destruction may cause an
    internal compiler error or potentially generate bad exception
    handling instrumentation code.
    
    USERS AFFECTED:
    C++ new expressions with multiple nested conditional paths that
    include temporary construction/destruction.
    

Problem conclusion

  • The compiler has been fixed to handle the above scenario.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ27128

  • Reported component name

    XL C/C++ FOR AI

  • Reported component ID

    5725C7200

  • Reported release

    G10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-08-26

  • Closed date

    2021-05-17

  • Last modified date

    2021-05-17

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

  • Fixed component ID

    5725C7200

Applicable component levels

[{"Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGH3R","label":"XL C\/C++ for AIX"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"G10"}]

Document Information

Modified date:
18 May 2021