You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Travis Vitek (JIRA)" <ji...@apache.org> on 2007/10/29 22:56:53 UTC
[jira] Commented: (STDCXX-617) [Intel C++ 10.0] error on implicit
assignment in 26.valarray.transcend.stdcxx-315.cp
[ https://issues.apache.org/jira/browse/STDCXX-617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538610 ]
Travis Vitek commented on STDCXX-617:
-------------------------------------
According to 12.8 p9, any user-declared copy assignment X::operator=() that takes a single X, X& const X&, volatile X& or const volatile X& is supposed to be considered a copy-assignment operator. The Intel 10.0.025 compiler does not appear to consider X::operator=() const, and later fails to generate a copy constructor.
2007-10-29 Travis Vitek <vi...@roguewave.com>
STDCXX-617
* 26.valarray.transcend.stdcxx-315.cpp: Work around
bug in Intel C++ 10.0.025 that does not consider const copy-
assignment operator before attempting to generate one.
Index: 26.valarray.transcend.stdcxx-315.cpp
===================================================================
--- 26.valarray.transcend.stdcxx-315.cpp (revision 589749)
+++ 26.valarray.transcend.stdcxx-315.cpp (working copy)
@@ -48,7 +48,7 @@
~S () { pass = pass && this == self; }
operator double () const { pass = pass && this == self; return 1.0; }
- void operator=(const S &s) const {
+ void operator=(const S &s) {
pass = pass && &s == s.self && this == self;
}
S operator- () const { pass = pass && this == self; return *this; }
> [Intel C++ 10.0] error on implicit assignment in 26.valarray.transcend.stdcxx-315.cp
> ------------------------------------------------------------------------------------
>
> Key: STDCXX-617
> URL: https://issues.apache.org/jira/browse/STDCXX-617
> Project: C++ Standard Library
> Issue Type: Bug
> Components: Tests
> Affects Versions: 4.2
> Environment: Intel C++ 10.0/Linux
> Reporter: Martin Sebor
> Assignee: Travis Vitek
> Priority: Minor
> Fix For: 4.2.1
>
>
> Copied from http://www.nabble.com/Re%3A--VOTE--release-stdcxx-4.2.0-%28candidate-7%29-p13372451.html:
> ...I tried Intel 10.0 and found another test that gave a compiler error. I didn't investigate it in great detail but it looks like a problem
> in the test rather than a compiler bug.
> /home/mbrown/stdcxx-4.2.0/tests/regress/26.valarray.transcend.stdcxx-315.cpp(43): error: implicitly generated assignment operator cannot copy:
> const member "S::self"
> struct S {
> ^
> detected during:
> implicit generation of "S &S::operator=(const S &)" at line 1033 of "/home/mbrown/stdcxx-4.2.0/include/valarray"
> instantiation of "std::valarray<_TypeT> std::abs(const std::valarray<_TypeT> &) [with _TypeT=S]" at line 78
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.