IBM Support

IZ83529: ABEND IN XLCCODE AT -O DUE TO AN ASSERT

Fixes are available

January 2011 PTF for XL C/C++ for AIX, V11.1
May 2011 PTF for XL C for AIX, V11.1
May 2011 PTF for XL C/C++ for AIX, V11.1
August 2011 PTF for XL C/C++ for AIX, V11.1
November 2011 PTF for XL C/C++ for AIX, V11.1
January 2012 PTF for XL C for AIX, V11.1
January 2012 PTF for XL C/C++ for AIX, V11.1
April 2012 PTF for XL C for AIX, V11.1
April 2012 PTF for XL C/C++ for AIX, V11.1
July 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C for AIX, V11.1
October 2012 PTF for XL C/C++ for AIX, V11.1
February 2013 PTF for XL C for AIX, V11.1
February 2013 PTF for XL C/C++ for AIX, V11.1
XL C/C++ for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 22 (September 2015 PTF) for 11.1
XL C for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C for AIX Fix Pack 24 (September 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 24 (September 2016 PTF) for 11.1
January 2011 PTF for XL C for AIX, V11.1
August 2011 PTF for XL C for AIX, V11.1
November 2011 PTF for XL C for AIX, V11.1
July 2012 PTF for XL C for AIX, V11.1
XL C for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 22 (September 2015 PTF) for 11.1

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The following test case when compiled at -O causes the compiler
    to produce an Internal Compiler Error:
    
    ======Compile Command:
    xlC_r -c -q64 -O reduced.C
    
    ======Test case:
    
    $ cat reduced.C
    typedef unsigned int           UInt32;
    typedef int                    Int32;
    typedef signed long        IntNative;
    typedef unsigned long      UIntNative;
    
    typedef IntNative              IntPtr;
    typedef UIntNative             lockWord_t;
    
    void logAssertFailed(UInt32 flags,
                           const char  *srcFileName,
                           UInt32 srcLineNumber,
                           Int32  retCode,
                           Int32  reasonCode,
                           UInt32 logRecTag,
                           const char *dataStr,
                           const char *failingExpr);
    
    //22093
    enum MutexName
    {
      UnknownMutex                               = 0x00
    
    };
    
    class BaseMutexClass
    {
    
    
    public:
      MutexName getName() const { return mutexName; };
    
    
      lockWord_t getLockWord() const { return lockWord; };
    
    protected:
    
    
      volatile lockWord_t lockWord;
      MutexName mutexName;
    
    
    };
    
    //23481
    class StaticThMutex : public BaseMutexClass
    {
    };
    
    class StripeGroup
    {
    
      friend class StripeGroupCfg;
    
    
            private:
            void endUseInternal();
    };
    
    //49929
    class StripeGroupCfg
    {
      friend class StripeGroup;
    
    private:
    
    
      static StaticThMutex SGTableMutex;
    };
    
    
    
    
    void StripeGroup::endUseInternal()
    {
      lockWord_t lockWordCopy =
    (&StripeGroupCfg::SGTableMutex)->getLockWord();
      logAssertFailed (0x00000002, "stripeopen.C", 1875,
    (IntPtr)(((Int32)(IntPtr)((void
    *)&StripeGroupCfg::SGTableMutex))), (Int32)lockWordCopy,
    (Int32)((&StripeGroupCfg::SGTableMutex)->getName()), 0, "0x0)");
    }
    $
    
    
    ===== ACTUAL OUTPUT:
    $xlC_r -c -q64 -O reduced.C
        1500-004: (U) INTERNAL COMPILER ERROR while compiling
    StripeGroup::endUseInternal().  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
    $
    $
    
    ===== EXPECTED OUTPUT:
    Compiler should not produce an Internal Compiler Error.
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Users that calculate less than address sized results from
    addresses may be affected by this issue.
    
    PROBLEM DESCRIPTION:
    There was an assert in xlCcdoe for wrong length address that
    caused the compiler to abend.
    

Problem conclusion

  • The above assert has been fixed and the compiler no longer
    abends.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ83529

  • Reported component name

    XL C FOR AIX

  • Reported component ID

    5724X1200

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-08-25

  • Closed date

    2011-01-03

  • Last modified date

    2011-01-05

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

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

    LI75779

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5724X1200

Applicable component levels

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

Document Information

Modified date:
06 October 2021