stdcxx-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-648) [MSVC] errors compiling with _RWSTD_STRICT_ANSI
Date Sun, 16 Mar 2008 21:39:24 GMT

    [ 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<char>,
>             _InputIter=std::istreambuf_iterator<char,std::char_traits<char>>
>         ]
>         D:\stdcxx\trunk\include\istream(164) : see reference to function template instantiation
'std::basic_istream<_CharT> &__rw::__rw_extract<char,std::char_traits<char>,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<char>,
>             _InputIter=std::istreambuf_iterator<char,std::char_traits<char>>
>         ]
>         D:\stdcxx\trunk\include\istream(172) : see reference to function template instantiation
'std::basic_istream<_CharT> &__rw::__rw_extract<char,std::char_traits<char>,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<wchar_t>,
>             _InputIter=std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>
>         ]
>         D:\stdcxx\trunk\include\istream(164) : see reference to function template instantiation
'std::basic_istream<_CharT> &__rw::__rw_extract<wchar_t,std::char_traits<wchar_t>,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<wchar_t>,
>             _InputIter=std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>
>         ]
>         D:\stdcxx\trunk\include\istream(172) : see reference to function template instantiation
'std::basic_istream<_CharT> &__rw::__rw_extract<wchar_t,std::char_traits<wchar_t>,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.


Mime
View raw message