Fixes are available
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
When compiling the following test case, the compiler claims the two constructors are the same and issues a duplicate definition error. Error Message: $ xlC -c test.cpp "test.cpp", line 16.9: 1540-0401 (S) The member "TypeBase<std::string,TYPE>::TypeBase<std::string,TYPE>(const TypeBase &)" is already declared. "test.cpp", line 14.18: 1540-0425 (I) "TypeBase<std::string,TYPE>" is defined on line 14 of "test.cpp". ======= TEST CASE ======= #include <string> template <typename BUILTIN, typename TYPE> class TypeBase { explicit TypeBase (const BUILTIN & value) { } TypeBase (const TypeBase & value) { } }; template <typename TYPE> class TypeBase<std::string, TYPE> { explicit TypeBase (const std::string & value) { } TypeBase (const TypeBase & value) { } }; class MyType : public TypeBase<std::string, MyType> { };
Local fix
N/A
Problem summary
This problem may appear when a partial specialization has a copy constructor and at least one other constructor. The compiler claims the 2 constructors are the same and issues a duplicate definition error.
Problem conclusion
The problem was the result of a logic error in a query looking for injected class names in a partial specialization, this has been resolved.
Temporary fix
Comments
APAR Information
APAR number
LI75119
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-12-01
Closed date
2009-12-01
Last modified date
2009-12-01
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++ SLES10
Fixed component ID
5724U8300
Applicable component levels
RA10 PSN IZ56121
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:
14 October 2021