IBM Support

LI74315: Compile fails for overloaded resolution

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • In the following test case, the overload resolution is being
    confounded by the using declaration:
    
    using SelectableStreamBase::reactor;
    
    This occurs on v9 and v10 of XL C++
    ---------------------------------------------------------
    
    // 11681
    class ACE_Reactor;
    
    // 11689 candidate
    struct ACE_Event_Handler  {
      // 11764 candidate
      void reactor (ACE_Reactor *reactor);
      // 11766
      ACE_Reactor *reactor (void) const;
      };
    
    // 35847
    template <class SVC_HANDLER>
    struct ACE_Acceptor : public ACE_Event_Handler{
        // 35888
        int make_svc_handler (SVC_HANDLER *&sh);
    };
    
    // 36426
    template <class SVC_HANDLER>
    int ACE_Acceptor<SVC_HANDLER>::make_svc_handler (SVC_HANDLER
    *&sh){
      // 36434 (S)
      sh->reactor (this->reactor ());
      return 0;
    }
    
    // 47568
    struct  SelectableStreamBase : public ACE_Event_Handler{};
    
    // 477723
    struct  TCPStream : public SelectableStreamBase   {
       // 47730
       using SelectableStreamBase::reactor;
       // 47770 candidate
       void reactor (ACE_Reactor *reactor);
    };
    
    template class ACE_Acceptor<TCPStream>;
    
    
    
    EXPECTED RESULTS
    ----------------
    Compile successful
    
    
    ACTUAL RESULTS
    ----------------
    "b.cpp", line 25.5: 1540-0219 (S) The call to "reactor" has no
    best match.
    "b.cpp", line 25.3: 1540-1230 (I) Argument number 1 is the
    implicit "this" argument.
    "b.cpp", line 25.30: 1540-1229 (I) Argument number 2 is an
    rvalue of type "ACE_Reactor *".
    "b.cpp", line 37.10: 1540-1202 (I) No candidate is better than
    "TCPStream::reactor(ACE_Reactor *)".
    "b.cpp", line 25.3: 1540-1231 (I) The conversion from argument
    number 1 to "TCPStream &" uses "the identity conversion".
    "b.cpp", line 25.30: 1540-1231 (I) The conversion from argument
    number 2 to "ACE_Reactor *" uses "the identity conversion".
    "b.cpp", line 9.8: 1540-1202 (I) No candidate is better than
    "ACE_Event_Handler::reactor(ACE_Reactor *)".
    "b.cpp", line 25.3: 1540-1231 (I) The conversion from argument
    number 1 to "TCPStream &" uses "the identity conversion".
    "b.cpp", line 25.30: 1540-1231 (I) The conversion from argument
    number 2 to "ACE_Reactor *" uses "the identity conversion".
    "b.cpp", line 23.5: 1540-0700 (I) The previous message was
    produced while processing
    "ACE_Acceptor<TCPStream>::make_svc_handler(TCPStream *&)".
    "b.cpp", line 16.8: 1540-0700 (I) The previous message was
    produced while processing "struct ACE_Acceptor<TCPStream>".
    

Local fix

  • N/A
    

Problem summary

  • The problem effects overload resolution
    where a using declaration hides a member function with the same
    name.
    
    A problem with a point of instantiation was
    causing overload resolution to report an error
    instead of picking the correct name.
    

Problem conclusion

  • The location has been fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI74315

  • Reported component name

    XL C/C++ SLES10

  • Reported component ID

    5724U8300

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-03-30

  • Closed date

    2009-03-30

  • Last modified date

    2009-03-30

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

    IZ37066

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

    LI74414

Fix information

  • Fixed component name

    XL C/C++ SLES10

  • Fixed component ID

    5724U8300

Applicable component levels

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

Document Information

Modified date:
16 October 2021