IBM Support

LI76572: FATAL ERROR IN XLCENTRY

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Compiling the following template test case results in fatal
    error.
    
    $cat xlc_crash.cxx
    
    #include <inttypes.h>
    #include <string>
    #include <iostream>
    #include <vector>
    
    class DocumentsWriter {
    
    private:
    
      class ByteBlockPool;
      class CharBlockPool;
      class FieldMergeState;
    
      template<typename T>
      class BlockPool {
      protected:
        bool trackAllocations;
    
        int32_t numBuffer;
    
        int32_t bufferUpto;           // Which buffer we are upto
        int32_t blockSize;
    
        DocumentsWriter* parent;
      public:
        int32_t tOffset;          // Current head offset
        int32_t tUpto;             // Where we are in head buffer
        T* buffer;                              // Current head
    buffer
    
        virtual T* getNewBlock(bool trackAllocations) = 0;
    
        BlockPool(DocumentsWriter* _parent, int32_t _blockSize, bool
    trackAllocations)
    
        {
          this->blockSize = _blockSize;
          this->parent = _parent;
          bufferUpto = -1;
          tUpto = blockSize;
          tOffset = -blockSize;
          buffer = NULL;
          numBuffer = 0;
          this->trackAllocations = trackAllocations;
          buffer = NULL;
        }
        virtual ~BlockPool(){ }
    
        virtual void reset() = 0;
    
        void nextBuffer() {
        }
    
        friend class DocumentsWriter;
      };
    
      class CharBlockPool: public BlockPool<char>{
      public:
        CharBlockPool(DocumentsWriter* _parent);
        virtual ~CharBlockPool();
        char* getNewBlock(bool trackAllocations);
        void reset();
        friend class DocumentsWriter::FieldMergeState;
      };
    
      class ByteBlockPool: public BlockPool<uint8_t>{
      public:
        ByteBlockPool( bool _trackAllocations, DocumentsWriter*
    _parent);
        virtual ~ByteBlockPool();
        uint8_t* getNewBlock(bool trackAllocations);
        int32_t newSlice(const int32_t size);
        int32_t allocSlice(uint8_t* slice, const int32_t upto);
        void reset();
    
      };
    };
    
    
    ===== ACTUAL OUTPUT:
    
    $xlC xlc_crash.cxx -c
    1501-224 (S) fatal error in
    <path_to_compiler_binary>/exe/xlCentry: signal 11 received
    

Local fix

  • N/A
    

Problem summary

  • PROBLEM DESCRIPTION: An internal error may be generated with
    some uses of member template classes due to an invalid query.
    
    USERS AFFECTED: The problem would affect only users of member
    template classes.
    

Problem conclusion

  • Problem is fixed. Apply applicable service.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI76572

  • 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

    2012-01-09

  • Closed date

    2012-01-09

  • Last modified date

    2012-01-09

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

    IV03484

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

Fix information

  • Fixed component name

    XL C/C++ SLES10

  • Fixed component ID

    5724U8300

Applicable component levels



Document information

More support for: XL C/C++

Software version: A.1

Reference #: LI76572

Modified date: 09 January 2012


Translate this page: