IBM Support

LI74290: INTERNAL COMPILER ERROR IN XLCENTRY

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The compiler abends in xlCentry with the following test case:
    
    Compile Command:
    xlC_r -c test.C
    
    =====Start of test.C====
    typedef unsigned long   size_t;
    
    class RexxArray;
    class RexxString;
    class RexxObject;
    class RexxMessage;
    
    typedef RexxObject *  (RexxObject::*PCPPMC1)(RexxObject **,
    size_t);
    
    class RexxObject {
      public:
         RexxMessage *start(RexxObject **, size_t);
    };
    
    
     class RexxArray : public RexxObject {
      public:
       void * operator new(size_t, size_t, RexxObject **);
       inline void operator delete(void *, size_t, RexxObject **)
    {;}
       inline RexxArray() { ; };
     };
    
     class RexxMessage : public RexxObject {
      public:
       RexxMessage(RexxObject *, RexxObject *, RexxArray *);
       RexxObject   *start(RexxObject *);
     };
    
    
    RexxMessage *RexxObject::start(
        RexxObject **arguments,
        size_t       argCount)
    {
        RexxMessage *newMessage;
        RexxString  *newMsgName;
        RexxObject *message = arguments[0];
        newMessage = new RexxMessage(this, message, new (argCount -
    1, arguments + 1) RexxArray);
    
        return newMessage;
    }
    =======End of test.C==================
    

Local fix

  • n/a
    

Problem summary

  • C++ users using exceptions in a slightly
    obscure way (eg: new expression inside a placement new) maybe
    affected by this issue.
    
    For example, when a placement "new" is inside
    another "new" (or vice versa), ie: void * bar = new Bar(new
    (0, 0)Foo);, the compiler produces an internal compiler error.
    

Problem conclusion

  • Fixed the exception handler so that it
    correctly handles this situation.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI74290

  • Reported component name

    XL C/C++ SLES10

  • Reported component ID

    5724U8300

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-03-30

  • Closed date

    2009-03-30

  • Last modified date

    2009-03-30

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

    IZ34314

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

    LI74351

Fix information

  • Fixed component name

    XL C/C++ SLES10

  • Fixed component ID

    5724U8300

Applicable component levels

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A.1","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
16 October 2021