Skip to main content

IV33368: TEMPLATE AND TYPEDEF CAUSING INTERNAL ERROR


Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Instantiating a template using a type that was created with
    typedef is causing the compiler to encounter an internal
    compiler error.
    
    
       ===== TEST CASE =====
    
    template< typename T,
              typename TypeDefType = typename T::typedeftype,
              TypeDefType (T::*Val)() = &T::val >
    struct myStruct
    {
     static TypeDefType run( T & g )
     {
      TypeDefType n = (g.*Val)();
      return n;
     }
    };
    
    class A {};
    
    class B
    {
     public:
      typedef A * typedeftype;
      A * val() { }
    };
    
    void set(...);
    
    void test()
    {
     typedef B C;
     set(&myStruct<C>::run);
    }
    
    
    $ xlC -c test.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
    $
    

Local fix

  • N/A
    

Problem summary

  • PROBLEM DESCRIPTION:
    Templates instantiated using a local typedef when the local
    typedef is out of scope at the point of instantiation.
    
    USERS AFFECTED:
    The problem is specific to the case where a template is
    implicitly instantiated with a local typedef.
    

Problem conclusion

  • The problem has been resolved.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV33368

  • Reported component name

    XL C/C++ AIX

  • Reported component ID

    5724X1300

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-12-11

  • Closed date

    2013-02-07

  • Last modified date

    2013-02-08

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

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

    LI77232 IV37951 LI77340

Fix information

  • Fixed component name

    XL C/C++ AIX

  • Fixed component ID

    5724X1300

Applicable component levels

  • RB10 PSY U858036

       UP C

Rate this page:

(0 users)Average rating

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page:


(0 users)Average rating

Add comments

Document information

XL C/C++ for AIX


Software version:
11.1


Reference #:
IV33368


Modified date:
2013-02-08

Translate my page

Content navigation