This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c++/6645: Bad code generation with -O1 and STL



>Number:         6645
>Category:       c++
>Synopsis:       Bad code generation with -O1 and STL
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 13 06:36:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     jakob@unthought.net
>Release:        3.1 20020507
>Organization:
>Environment:
RedHat Linux 7.2, ia-32
>Description:
g++ generates code causing a segfault in the attached example. It seems to be related to -felide-constructors, at least switching that off seems to fix the problem.

It seems that a std::~vector destructor is called either with it's this pointer set wrong, or simply called once too many (perhaps due to elided constructors?) - but I am guessing here...

Also, this is a regression from egcs-1.0.3.
>How-To-Repeat:
] g++ -O1 -o rc-crash rc-crash.cc 
] ./rc-crash
Before test insert
Segmentation fault (core dumped)
>Fix:
Workaround: Compile with -O1 -fno-elide-constructors
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="rc-crash.cc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="rc-crash.cc"

I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3RyaW5nPgojaW5j
bHVkZSA8dmVjdG9yPgoKLy8KLy8gQ29tcGlsZSB3aXRoIC1PMQovLwovLyBTdXJ2aXZhbCB0cmlj
ayAjMToKLy8gIFVzZSAtZm5vLWVsaWRlLWNvbnN0cnVjdG9ycwovLwovLyBTdXJ2aXZhbCB0cmlj
ayAjMjoKLy8gIFVzZSAtRFRSSUNLX1hYWAovLwovLyBTdXJ2aXZhbCB0cmljayAjMzoKLy8gIFVz
ZSAtRFRSSUNLX1lZWQovLwoKCnN0cnVjdCB0aWRfdCB7CiAgaW5saW5lIGJvb2wgb3BlcmF0b3I8
IChjb25zdCB0aWRfdCAmdGhhdCkgY29uc3QKICB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQojaWZk
ZWYgVFJJQ0tfWVlZCiAgaW50IHZhbDsKI2Vsc2UKICBzdGQ6OnZlY3RvcjxpbnQ+IHZhbDsKI2Vu
ZGlmCn07CgpzdHJ1Y3QgcmNfdCB7CiAgfnJjX3QoKSB7CiNpZmRlZiBUUklDS19YWFgKICAgIHN0
ZDo6bWFwPGludCwgaW50Pjo6Y29uc3RfaXRlcmF0b3IgZHVtbXk7CiNlbHNlCiAgICBzdGQ6Om1h
cDxpbnQsIGludD46Oml0ZXJhdG9yIGR1bW15OwojZW5kaWYKICAgIGR1bW15ID0gcHJvcGVydGll
cy5iZWdpbigpOwogICAgZHVtbXkgPSBwcm9wZXJ0aWVzLmVuZCgpOwogIH0KICBzdGQ6Om1hcDxp
bnQsIGludD4gcHJvcGVydGllczsKfTsKCnR5cGVkZWYgc3RkOjptYXA8dGlkX3QsIHJjX3Q+IHJj
X21hcF90OwoKaW50IG1haW4oKQp7CiAgcmNfbWFwX3QgcmVzX21hcDsKICBzdGQ6OmNlcnIgPDwg
IkJlZm9yZSB0ZXN0IGluc2VydCIgPDwgc3RkOjplbmRsOwogIHJlc19tYXAuaW5zZXJ0KHN0ZDo6
bWFrZV9wYWlyKHRpZF90KCksIHJjX3QoKSkpOwogIHN0ZDo6Y2VyciA8PCAiVGVzdCBpbnNlcnQg
ZG9uZSIgPDwgc3RkOjplbmRsOwogIHJldHVybiAwOwp9Cgo=


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]