IBM Support

IV75539: INTERNAL ERROR WITH INLINE TEMPLATE USAGE WITH IMPLICIT TEMPLATE INSTANTIATION

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An internal compiler error is encountered with a C++ template
    usage scenario where an inline member template contains an
    implicit instantiation of another member template.
    
    
       === TEST CASE ===
    
    struct Dummy { Dummy(char *src) {} };
    
    template <typename Type>
    class MyClass1
    {
        template <typename T>
        class InClass1 {};
    
        template<typename T, bool a>
        class InClass2;
    
        template<typename T>
        class InClass2<T, true>
        {
            InClass1<char> t;
        };
    
        template<typename T1, typename T2>
        void r() {}
    };
    
    template <typename Type>
    class MyClass2
    {
     public:
        template <typename T1, typename T2>
        MyClass2& run2(T2& is)
        {
            MyClass1<T1> t(&someFunc());
            return *this;
        }
    
        MyClass2& run(char* str)
        {
            Dummy t(str);
            return run2<Type>(t);
        }
    };
    
    int main()
    {
        MyClass2<int> a;
        a.run("test");
    }
    
    
    $ xlC -c apar.cpp
    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
    $
    
    (Note:  Test case demonstrates internal compiler error
    only - it contains a source error because no definition for
    'someFunc()' exists)
    

Local fix

Problem summary

  • PROBLEM DESCRIPTION:
    Compiler logic to traverse and process member templates of
    another template was out-of-sync when encountering the implicit
    instantiation declaration.
    
    USERS AFFECTED:
    Users with code containing a member template defined inline and
    containing an implicit instantiation of another member template.
    

Problem conclusion

  • The problem has been fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV75539

  • Reported component name

    XL C/C++ FOR AI

  • Reported component ID

    5725C7200

  • Reported release

    D10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-07-28

  • Closed date

    2015-07-28

  • Last modified date

    2015-07-28

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

    IV74013

  • 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

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSGH3R","label":"XL C\/C++ for AIX"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"13.1","Edition":"","Line of Business":{"code":"LOB73","label":"Power TPS"}}]

Document Information

Modified date:
19 August 2024