IBM Support

LI76981: -QLANGLVL=EXTENDED0X CAUSES COMPILER ERROR

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • The following testcase fails with
    
    $xlC -qlanglvl=extended0x -c t.cpp
    /usr/vacpp/bin/.orig/xlC: 1501-230 (S) Internal compiler error;
    please contact your Service Representative. For more information
    visit:
    http://www.ibm.com/support/docview.wss?uid=swg21110810
    
    $cat t.cpp
    /////////////////// t.cpp ///////////////////
    struct House {
    private:
        struct Base {
            virtual ~Base() { }
        };
    
        template <class T>
        struct Derived : Base {
        public:
            virtual ~Derived() { };
    
            T& value() {
                return value_;
            }
    
            const T& value() const {
                return value_;
            }
    
        protected:
            T value_;
        };
    
    public:
    
        House()
            : imp_(0) {
        }
    
        ~House() {
            delete imp_;
        }
    
        template<class T>
        T* fun() {
            House::Derived<T>* p =
    dynamic_cast<House::Derived<T>*>(this->imp_);
            return p ? &p->value() : 0;     // <--- ICE at
    &p->value()
        }
    
        template<class T>
        const T* fun() const {
            return const_cast<House*>(this)->fun<T> ();
        }
    
    private:
        Base* imp_;
    };
    ///////////////// end of t.cpp ///////////////////
    

Local fix

  • N/A
    

Problem summary

  • ICE with -qlanglvl=extended0x or -qtmplparse=error
    

Problem conclusion

  • Avoid instantiation of function specializations for dependent
    function calls while parsing template definitions.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI76981

  • Reported component name

    XL C/C++ FOR LI

  • Reported component ID

    5725C7300

  • Reported release

    C10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-08-28

  • Closed date

    2012-08-28

  • Last modified date

    2012-08-28

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

    IV18337

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

Fix information

  • Fixed component name

    XL C/C++ FOR LI

  • Fixed component ID

    5725C7300

Applicable component levels



Document information

More support for: XL C/C++ for Linux
Compiler

Software version: 12.1

Reference #: LI76981

Modified date: 28 August 2012