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.