Issue Details (XML | Word | Printable)

Key: STDCXX-367
Type: Bug Bug
Status: Resolved Resolved
Resolution: Cannot Reproduce
Priority: Minor Minor
Assignee: Travis Vitek
Reporter: Martin Sebor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

[XLC++ 7.0, 8.0, 9.0] warning 1540-0183 on explicit instantiation

Created: 20/Mar/07 10:38 PM   Updated: 07/Jun/08 02:07 AM
Return to search
Component/s: Build and Installation
Affects Version/s: 4.1.3
Fix Version/s: 4.2.2

Time Tracking:
Original Estimate: 1h
Original Estimate - 1h
Remaining Estimate: 0h
Time Spent - 1.5h
Time Spent: 1.5h
Time Spent - 1.5h

Environment: IBM XLC++ 7.0, 8.0, 9.0

Severity: Compiler Warning
Resolution Date: 07/Jun/08 02:07 AM


 Description  « Hide
Compiling stdcxx 4.1.3 with XLC++ 7.0 on AIX produces many warnings like the ones below:

xlCcore -c -I/amd/devco/sebor/stdcxx-4.1.3/include/ansi -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG -I/build/sebor/stdcxx-4.1.3-xlc-7.0.0.9-11s/include -I/amd/devco/sebor/stdcxx-4.1.3/include -g -qtemplateregistry=repository.ti /amd/devco/sebor/stdcxx-4.1.3/src/ti_istream.cpp
"/amd/devco/sebor/stdcxx-4.1.3/include/istream", line 580.23: 1540-0183 (W) The explicit instantiation "basic_istream<char,std::char_traits<char> >" should either be explictly qualified or be declared in the namespace containing the template.
"/amd/devco/sebor/stdcxx-4.1.3/include/istream", line 580.23: 1540-0183 (W) The explicit instantiation "basic_istream<char,std::char_traits<char> >" should either be explictly qualified or be declared in the namespace containing the template.
"/amd/devco/sebor/stdcxx-4.1.3/include/istream", line 153.16: 1540-0700 (I) The previous message was produced while processing "_rw::_rw_extract<char,std::char_traits<char>,bool>(basic_istream<char,std::char_traits<char> > &, bool &)".
"/amd/devco/sebor/stdcxx-4.1.3/include/istream", line 152.20: 1540-0700 (I) The previous message was produced while processing "std::basic_istream<char,std::char_traits<char> >::operator>>(bool &)".
"/amd/devco/sebor/stdcxx-4.1.3/include/istream", line 82.7: 1540-0700 (I) The previous message was produced while processing "class std::basic_istream<char,std::char_traits<char> >".
...



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Martin Sebor added a comment - 29/Aug/07 09:25 PM
This is a problem across all versions from 7.0 through 9.0.

Martin Sebor added a comment - 15/May/08 09:17 PM
I don't see the warnings in recent builds or in builds with 4.2.0.
Travis, can you confirm that we are haven't accidentally disabled explicit instantiation and close this issue if it's been fixed?

Travis Vitek added a comment - 05/Jun/08 09:38 PM
The templates are being explicitly instantiated. The basic_istream<char> symbols are all in the lib. If I preprocess ti_ostream.cpp I see the following code...
namespace std {
  template class basic_istream<char, char_traits<char> >;
}

I do see some conditional code in rw/_defs.h that disables explicit instantation to avoid an ICE with XLC++ 8.0. This is only enabled under very specific conditions and would not have an impact on other versions of the compiler.