Fixes are available
XL C/C++ for AIX Fix Pack 11 (February 2015 PTF) for 12.1
XL C/C++ for AIX Fix Pack 12 (May 2015 PTF) for 12.1
XL C/C++ for AIX Fix Pack 13 (August 2015 Update) for 12.1
XL C/C++ for AIX Fix Pack 14 (December 2015 Update) for 12.1
XL C/C++ for AIX Fix Pack 15 (April 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 16 (July 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 17 (November 2016 Update) for 12.1
XL C/C++ for AIX Fix Pack 18 (February 2017 Update) for 12.1
XL C/C++ for AIX Fix Pack 19 (August 2017 Update) for 12.1
XL C/C++ for AIX Fix Pack 20 (March 2018 Update) for 12.1
XL C/C++ for AIX Fix Pack 10 (October 2014 PTF) for 12.1
XL C/C++ for AIX Fix Pack 21 (January 2019 Update) for 12.1
APAR status
Closed as program error.
Error description
The compiler issues an error message in the utility header file; which the client doesn't include directly. ===== COMPILE COMMAND: xlC_r -q32 -qthreaded -qalias=ansi -qlanglvl=extended0x -c test.cpp ===== TESTCASE: $ cat test3.cpp #include <vector> #include <map> #include <algorithm> namespace { template <typename PairType> struct second_t { typename PairType::second_type operator()( const PairType& p ) const { return p.second; } }; template <typename MapType> second_t<typename MapType::value_type> second(const MapType &m) { static_cast<void>(m); return second_t<typename MapType::value_type>(); } } int main() { std::map<int, int> aMap; aMap.insert(1, 1); std::vector<int> seconds; std::transform(aMap.begin(), aMap.end(), std::back_inserter(seconds), second(aMap)); } $ ===== ACTUAL OUTPUT: $ xlC_r -q32 -qthreaded -qalias=ansi -qlanglvl=extended0x -c test.cpp "/usr/vacpp/include/utility", line 96.64: 1540-0063 (S) The text ")" is unexpected. $ ===== EXPECTED OUTPUT: $ xlC_r -q32 -qthreaded -qalias=ansi -qlanglvl=extended0x -c test.cpp /opt/IBM/xlC/13.1.0/include/xtree", line 360.32: 1540-0201 (S) The "unary *" operator is not allowed for type "int". /opt/IBM/xlC/13.1.0/include/xtree", line 358.22: 1540-0700 (I) The previous message was produced while processing "std::_Tree<std::_Tmap_traits<int,int,std::less<int>,std::alloca tor<std::pair<const int,int> >,0> >::insert<int>(int, int)". "test.cpp", line 26.9: 1540-0700 (I) The previous message was produced while processing "main()". $
Local fix
N/A
Problem summary
USERS AFFECTED: All users using -qlanglvl=extended0x with multiple less than operator beside identifiers are affected by this issue. PROBLEM DESCRIPTION: VariadicTemplate langlvl was causing some operator 'less than' to be registered as arglist inititation.
Problem conclusion
The compiler no longer confuses the 'less than' for arglist with -qlanglvl=variadictemplates.
Temporary fix
Comments
APAR Information
APAR number
IV64516
Reported component name
XL C/C++ FOR AI
Reported component ID
5725C7200
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2014-09-03
Closed date
2014-10-23
Last modified date
2014-12-26
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++ FOR AI
Fixed component ID
5725C7200
Applicable component levels
RC10 PSY UP
A
Document Information
Modified date:
21 August 2024