IBM Support

LI75471: PRIVATE STRUCT CANNOT BE ACCESSED

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When compiling the code below, the compiler is incorrectly
    outputting the following error message:
    
    
    line 9.21: 1540-0300 (S) The "private" member "struct A::S_"
    cannot be accessed.
    
    
    -------------------------
    class A
    {
    private:
       struct S_ {
         enum SVE { X, Y, Z };
       };
    private:
       template <S_::SVE e>
       double f() const { return 0.0; }
    };
    -------------------------
    

Local fix

Problem summary

  • PROBLEM DESCRIPTION:
    When a template member function has a reference to a data
    member that is private, the access checker fails to recognize
    that these two members are within the same class scope, and
    gives an error.
    
    USERS AFFECTED:
    Users using template member functions to access a private data
    member.
    

Problem conclusion

  • Changed the scope of the template function to be within a class
    scope, so that the access checker can recognize that the
    template function and the reference data are both class
    members.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI75471

  • Reported component name

    XL C/C++ AE BG/

  • Reported component ID

    5799HJE00

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-06-04

  • Closed date

    2010-07-28

  • Last modified date

    2010-07-28

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

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

    LI75504 IZ88285

Fix information

  • Fixed component name

    XL C/C++ AE BG/

  • Fixed component ID

    5799HJE00

Applicable component levels

  • R900 PSY

       UP

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSJT9L","label":"XL C\/C++"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Document Information

Modified date:
17 October 2021