Return-Path: Delivered-To: apmail-stdcxx-issues-archive@locus.apache.org Received: (qmail 91297 invoked from network); 16 Mar 2008 21:41:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Mar 2008 21:41:18 -0000 Received: (qmail 76976 invoked by uid 500); 16 Mar 2008 21:41:16 -0000 Delivered-To: apmail-stdcxx-issues-archive@stdcxx.apache.org Received: (qmail 76961 invoked by uid 500); 16 Mar 2008 21:41:16 -0000 Mailing-List: contact issues-help@stdcxx.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@stdcxx.apache.org Delivered-To: mailing list issues@stdcxx.apache.org Received: (qmail 76947 invoked by uid 99); 16 Mar 2008 21:41:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 16 Mar 2008 14:41:16 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 16 Mar 2008 21:40:43 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id EDE95234C09E for ; Sun, 16 Mar 2008 14:39:24 -0700 (PDT) Message-ID: <663794349.1205703564973.JavaMail.jira@brutus> Date: Sun, 16 Mar 2008 14:39:24 -0700 (PDT) From: "Martin Sebor (JIRA)" To: issues@stdcxx.apache.org Subject: [jira] Commented: (STDCXX-648) [MSVC] errors compiling with _RWSTD_STRICT_ANSI MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/STDCXX-648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12579263#action_12579263 ] Martin Sebor commented on STDCXX-648: ------------------------------------- I like this approach. I would only suggest a couple of changes: # Separate out any changes that aren't necessary to resolve this issue into a patch of their own. # Have {{_rw_check_overflow}} return the result rather than passing it out by reference. It's often more efficient that way -- see below. {panel:title=t.cpp}{noformat} void return_by_reference (int &x) { x = x + x; } int return_by_value (int x) { return x + x; } int call_by_reference (int x) { return_by_reference (x); return x; } int call_by_value (int x) { return return_by_value (x); } {noformat}{panel} {panel:title=t.s}{noformat} _Z19return_by_referenceRi: sall (%rdi) ret _Z15return_by_valuei: leal (%rdi,%rdi), %eax ret _Z17call_by_referencei: subq $8, %rsp movl %edi, 4(%rsp) leaq 4(%rsp), %rdi call _Z19return_by_referenceRi movl 4(%rsp), %eax addq $8, %rsp ret _Z13call_by_valuei: jmp _Z15return_by_valuei .ident "GCC: (GNU) 4.1.2 20070925 (Red Hat 4.1.2-33)" .section .note.GNU-stack,"",@progbits {noformat}{panel} > [MSVC] errors compiling with _RWSTD_STRICT_ANSI > ----------------------------------------------- > > Key: STDCXX-648 > URL: https://issues.apache.org/jira/browse/STDCXX-648 > Project: C++ Standard Library > Issue Type: Bug > Components: Build > Affects Versions: 4.2.0 > Environment: MSVC, ICC/Windows > Reporter: Farid Zaripov > Assignee: Farid Zaripov > Priority: Minor > Fix For: 4.2.1 > > Attachments: stdcxx-648-2.patch, stdcxx-648.patch > > Original Estimate: 8h > Time Spent: 7h > Remaining Estimate: 1h > > I've built the .configure project and appended #define _RWSTD_STRICT_ANSI to the generated config.h file. After that the library compiled with the following errors (MSVC 8): > ------ Build started: Project: .stdcxx, Configuration: 15s Debug Thread-safe Static Win32 ------ > ... > iostream.cpp > D:\stdcxx\trunk\include\fstream(122) : warning C4099: 'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class' > D:\stdcxx\trunk\include\rw/_iosbase.h(221) : see declaration of 'std::ios_base::Init' > D:\stdcxx\trunk\include\fstream(274) : see reference to class template instantiation 'std::basic_filebuf<_CharT,_Traits>' being compiled > D:\stdcxx\trunk\include\fstream(122) : warning C4099: 'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class' > D:\stdcxx\trunk\include\rw/_iosbase.h(221) : see declaration of 'std::ios_base::Init' > D:\stdcxx\trunk\include\fstream(668) : see reference to class template instantiation 'std::basic_filebuf<_CharT>' being compiled > with > [ > _CharT=char > ] > D:\stdcxx\trunk\include\fstream(122) : warning C4099: 'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class' > D:\stdcxx\trunk\include\rw/_iosbase.h(221) : see declaration of 'std::ios_base::Init' > D:\stdcxx\trunk\include\fstream(676) : see reference to class template instantiation 'std::basic_filebuf<_CharT>' being compiled > with > [ > _CharT=wchar_t > ] > ... > ti_filebuf.cpp > D:\stdcxx\trunk\include\fstream(122) : warning C4099: 'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class' > D:\stdcxx\trunk\include\rw/_iosbase.h(221) : see declaration of 'std::ios_base::Init' > D:\stdcxx\trunk\include\fstream(274) : see reference to class template instantiation 'std::basic_filebuf<_CharT,_Traits>' being compiled > D:\stdcxx\trunk\include\fstream(122) : warning C4099: 'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class' > D:\stdcxx\trunk\include\rw/_iosbase.h(221) : see declaration of 'std::ios_base::Init' > D:\stdcxx\trunk\include\fstream(668) : see reference to class template instantiation 'std::basic_filebuf<_CharT>' being compiled > with > [ > _CharT=char > ] > ... > ti_istream.cpp > D:\stdcxx\trunk\include\istream.cc(53) : error C2664: 'std::istreambuf_iterator<_CharT,_Traits> std::num_get<_CharT,_InputIter>::get(std::istreambuf_iterator<_CharT,_Traits>,std::istreambuf_iterator<_CharT,_Traits>,std::ios_base &,__rw::__rw_iostate &,bool &) const' : cannot convert parameter 5 from 'short' to 'bool &' > with > [ > _CharT=char, > _Traits=std::char_traits, > _InputIter=std::istreambuf_iterator> > ] > D:\stdcxx\trunk\include\istream(164) : see reference to function template instantiation 'std::basic_istream<_CharT> &__rw::__rw_extract,short>(std::basic_istream<_CharT> &,_NativeType &)' being compiled > with > [ > _CharT=char, > _NativeType=short > ] > D:\stdcxx\trunk\include\istream(163) : while compiling class template member function 'std::basic_istream<_CharT> &std::basic_istream<_CharT>::operator >>(short &)' > with > [ > _CharT=char > ] > D:\stdcxx\trunk\include\istream(585) : see reference to class template instantiation 'std::basic_istream<_CharT>' being compiled > with > [ > _CharT=char > ] > D:\stdcxx\trunk\include\istream.cc(53) : error C2664: 'std::istreambuf_iterator<_CharT,_Traits> std::num_get<_CharT,_InputIter>::get(std::istreambuf_iterator<_CharT,_Traits>,std::istreambuf_iterator<_CharT,_Traits>,std::ios_base &,__rw::__rw_iostate &,bool &) const' : cannot convert parameter 5 from 'int' to 'bool &' > with > [ > _CharT=char, > _Traits=std::char_traits, > _InputIter=std::istreambuf_iterator> > ] > D:\stdcxx\trunk\include\istream(172) : see reference to function template instantiation 'std::basic_istream<_CharT> &__rw::__rw_extract,int>(std::basic_istream<_CharT> &,_NativeType &)' being compiled > with > [ > _CharT=char, > _NativeType=int > ] > D:\stdcxx\trunk\include\istream(171) : while compiling class template member function 'std::basic_istream<_CharT> &std::basic_istream<_CharT>::operator >>(int &)' > with > [ > _CharT=char > ] > ... > ti_podarray.cpp > d:\stdcxx\trunk\src\podarray.h(86) : error C2027: use of undefined type 'std::char_traits<_CharT>' > with > [ > _CharT=const unsigned int * > ] > d:\stdcxx\trunk\src\podarray.h(86) : while compiling class template member function '__rw::__rw_pod_array<_TypeT,_Size>::__rw_pod_array(const _TypeT *)' > with > [ > _TypeT=const unsigned int *, > _Size=1024 > ] > d:\stdcxx\trunk\src\podarray.h(214) : see reference to class template instantiation '__rw::__rw_pod_array<_TypeT,_Size>' being compiled > with > [ > _TypeT=const unsigned int *, > _Size=1024 > ] > d:\stdcxx\trunk\src\podarray.h(86) : error C3861: 'length': identifier not found > ... > ti_wfilebuf.cpp > D:\stdcxx\trunk\include\fstream(122) : warning C4099: 'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class' > D:\stdcxx\trunk\include\rw/_iosbase.h(221) : see declaration of 'std::ios_base::Init' > D:\stdcxx\trunk\include\fstream(274) : see reference to class template instantiation 'std::basic_filebuf<_CharT,_Traits>' being compiled > D:\stdcxx\trunk\include\fstream(122) : warning C4099: 'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class' > D:\stdcxx\trunk\include\rw/_iosbase.h(221) : see declaration of 'std::ios_base::Init' > D:\stdcxx\trunk\include\fstream(676) : see reference to class template instantiation 'std::basic_filebuf<_CharT>' being compiled > with > [ > _CharT=wchar_t > ] > ... > ti_wistream.cpp > D:\stdcxx\trunk\include\istream.cc(53) : error C2664: 'std::istreambuf_iterator<_CharT,_Traits> std::num_get<_CharT,_InputIter>::get(std::istreambuf_iterator<_CharT,_Traits>,std::istreambuf_iterator<_CharT,_Traits>,std::ios_base &,__rw::__rw_iostate &,bool &) const' : cannot convert parameter 5 from 'short' to 'bool &' > with > [ > _CharT=wchar_t, > _Traits=std::char_traits, > _InputIter=std::istreambuf_iterator> > ] > D:\stdcxx\trunk\include\istream(164) : see reference to function template instantiation 'std::basic_istream<_CharT> &__rw::__rw_extract,short>(std::basic_istream<_CharT> &,_NativeType &)' being compiled > with > [ > _CharT=wchar_t, > _NativeType=short > ] > D:\stdcxx\trunk\include\istream(163) : while compiling class template member function 'std::basic_istream<_CharT> &std::basic_istream<_CharT>::operator >>(short &)' > with > [ > _CharT=wchar_t > ] > D:\stdcxx\trunk\include\istream(598) : see reference to class template instantiation 'std::basic_istream<_CharT>' being compiled > with > [ > _CharT=wchar_t > ] > D:\stdcxx\trunk\include\istream.cc(53) : error C2664: 'std::istreambuf_iterator<_CharT,_Traits> std::num_get<_CharT,_InputIter>::get(std::istreambuf_iterator<_CharT,_Traits>,std::istreambuf_iterator<_CharT,_Traits>,std::ios_base &,__rw::__rw_iostate &,bool &) const' : cannot convert parameter 5 from 'int' to 'bool &' > with > [ > _CharT=wchar_t, > _Traits=std::char_traits, > _InputIter=std::istreambuf_iterator> > ] > D:\stdcxx\trunk\include\istream(172) : see reference to function template instantiation 'std::basic_istream<_CharT> &__rw::__rw_extract,int>(std::basic_istream<_CharT> &,_NativeType &)' being compiled > with > [ > _CharT=wchar_t, > _NativeType=int > ] > D:\stdcxx\trunk\include\istream(171) : while compiling class template member function 'std::basic_istream<_CharT> &std::basic_istream<_CharT>::operator >>(int &)' > with > [ > _CharT=wchar_t > ] > ... > .stdcxx - 6 error(s), 9 warning(s) > ========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ========== -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.