c++/6272: GCC 2.95 fail

mantonenco@yahoo.com mantonenco@yahoo.com
Fri Apr 12 06:26:00 GMT 2002


>Number:         6272
>Category:       c++
>Synopsis:       GCC 2.95 fail
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Apr 12 06:26:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Antonenco Mihai
>Release:        gcc version 2.95.2 19991024 (release)
>Organization:
>Environment:
Suse 7.3
>Description:
mantonenco@linux1:/home/mantonenco/work/Test > gcc linuxProblem.cpp         
linuxProblem.cpp: In function `int main()':                                 
linuxProblem.cpp:23: initialization of non-const reference type `struct A &'
linuxProblem.cpp:23: from rvalue of type `A'                                
linuxProblem.cpp:10: in passing argument 1 of `A::operator =(A &)'          
>How-To-Repeat:
// I had this problem when I worked with auto_ptr<AType>
// and tried to make a resource transfer: ptr = f()
// The solution that I was forced to use was:
// auto_ptr<AType> tempPtr = f();
//   ptr = tempPtr;
// This solution doesn'd look good !

struct A
{
	A& operator=(A& a) { return *this; };
};

A f()
{
 A a;
	return a;
};

int main()
{
 A a;

 	a = f();

	return 0;
};
>Fix:
I had to replace in my code:
 ptr = f();
with
 auto_ptr<AType> tempPtr = f();
   ptr = tempPtr;
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list