Fixes are available
March 2009 Update for XL C/C++ for Linux, V10.1
October 2009 Update for XL C/C++ for Linux, V10.1
June 2011 Update for XL C/C++ for Linux, V10.1
XL C/C++ for Linux Fix Pack 8 (January 2014 Update) for 10.1
August 2010 Update for XL C/C++ for Linux, V10.1
January 2011 Update for XL C/C++ for Linux, V10.1
January 2012 Update for XL C/C++ for Linux, V10.1
July 2012 Update for XL C/C++ for Linux, V10.1
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
LI74414
Reported component name
XL C/C++ RHEL52
Reported component ID
5724U8310
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-03-31
Closed date
2009-03-31
Last modified date
2009-03-31
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL C/C++ RHEL52
Fixed component ID
5724U8310
Applicable component levels
RA10 PSN LI74315
UP06/09/13
[{"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