c++/7775: std::string foo = foo + "b" is erroneously compiled

udbz@rz.uni-karlsruhe.de udbz@rz.uni-karlsruhe.de
Fri Aug 30 09:06:00 GMT 2002


>Number:         7775
>Category:       c++
>Synopsis:       std::string foo = foo + "b" is erroneously compiled
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          accepts-illegal
>Submitter-Id:   net
>Arrival-Date:   Fri Aug 30 08:56:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     udbz@rz.uni-karlsruhe.de
>Release:        gcc-3.0.3
>Organization:
>Environment:

>Description:
GCC is too permissive when it comes to initialization 
with operator=(): It will even generate illegal code
on optimization-level -O3:


#include <iostream.h>
#include <string>

int main()
{
	std::string foo = foo + "b"; 
	std::cout << foo << endl;
}
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list