c++/1975: ICE for -O2 compile of nested throw in nested default/switch/conditional/destructor.

bumgard@roguewave.com bumgard@roguewave.com
Tue Feb 13 23:16:00 GMT 2001


>Number:         1975
>Category:       c++
>Synopsis:       ICE for -O2 compile of nested throw in nested default/switch/conditional/destructor.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 13 23:16:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Gregory Bumgardner
>Release:        gcc-3_0-branch 2001-02-13
>Organization:
>Environment:
Linux Redhat 7.0 2.2.16
>Description:
Throwing an exception (that has or inherits an explicit
destructor) from within a default switch case follows
another case with an arbitrary throw statement, where that
switch statement is nested within a conditional, and that
conditional is contained in an arbitrary class destructor,
produces an internal compiler error when compiling with -O2.

Please see the attached test program for a more detailed 
description.


>How-To-Repeat:
c++ -O2 -c test.cpp
>Fix:
Not a clue.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="test.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test.cpp"

LyoKICogRGVmZWN0IHJlcG9ydCBvbiBnY2NfM18wX2JyYW5jaCAyMDAxLTAyLTEzCiAqCiAqIFRo
aXMgcHJvZ3JhbSBwcm9kdWNlcyBhbiBpbnRlcm5hbCBjb21waWxlciBlcnJvciBhbmQKICogc2Vn
bWVudGF0aW9uIGZhdWx0LiBUaGUgcHJvYmxlbSBpcyBxdWl0ZSBzcGVjaWZpYywKICogYnV0IGRp
ZmZpY3VsdCB0byBjaGFyYWN0ZXJpemUuIEl0IGludm9sdmVzIHRocm93aW5nCiAqIGFuIGV4Y2Vw
dGlvbiB0aGF0IGhhcyBhIGRlc3RydWN0b3IgZnJvbSB3aXRoaW4KICogYSBjb25kaXRpb24gc3Rh
dGVtZW50LCBpbiBhbm90aGVyIGRlc3RydWN0b3IuCiAqCiAqIFRvIHByb2R1Y2UgdGhlIGVycm9y
LCBjb21waWxlIHRoaXMgY29kZSB1c2luZzoKICogICAgIGMrKyAtTzIgLWMgdGVzdC5jcHAKICoK
ICogIFJlbW92YWwgb2YgdGhlIC1PMiBvcHRpb24gZWxpbWluYXRlcyB0aGUgZXJyb3IuIAogKi8K
Ci8qCiAqIFRoZSBleGNlcHRpb24gY2xhc3Mgb3Igb25lIG9mIGl0cyBhbmNlc3RvcnMKICogbXVz
dCBoYXZlIGFuIGV4cGxpY2l0IGRlc3RydWN0b3IgdG8gcHJvZHVjZQogKiB0aGUgZmFpbHVyZS4K
ICovCmNsYXNzIGZvbyB7CiAgcHVibGljOgogICAgZm9vKCkgeyB9CiAgICB+Zm9vKHZvaWQpOwp9
OwoKLyoKICogSXQgaXMgaW4gdGhlIGNvbXBpbGF0aW9uIG9mIGRlc3RydWN0b3Igb2YgCiAqIHRo
aXMgY2xhc3MgdGhhdCB0aGUgZmFpbHVyZSBvY2N1cnMuCiAqLwpjbGFzcyBBIHsKICBwdWJsaWM6
CiAgICBBKHZvaWQpOwogICAgfkEodm9pZCk7CiAgICB2b2lkIG1ldGhvZCh2b2lkKTsKfTsKCi8q
IAogKiBUaGlzIGlzIGEgZHVtbXkgZnVuY3Rpb24gdXNlZCB0byBwcm92aWRlCiAqIGEgbm9uLWNv
bnN0IHZhbHVlIGZvciB0aGUgaWYgYW5kIHN3aXRjaAogKiBzdGF0bWVudHMgYmVsb3cuCiAqLwpp
bnQgZnVuYygpOwoKLyoKICogVGhlIGNvbXBpbGVyIGhhcyBubyBwcm9ibGVtcyBpZiB0aGUKICog
Y29kZSBmcmFnbWVudCBpcyBpbiBhIGNvbnN0cnVjdG9yCiAqLwpBOjpBKHZvaWQpIHsKICBpbnQg
cnY7CiAgaWYgKDAgIT0gKHJ2ID0gZnVuYygpKSkgewogICAgc3dpdGNoKHJ2KSB7CiAgICAgIGNh
c2UgMToKICAgICAgICB0aHJvdyBjaGFyKCdhJyk7IC8vIHRocm93IGFueXRoaW5nIGhlcmUKICAg
ICAgZGVmYXVsdDogCiAgICAgICAgdGhyb3cgZm9vKCk7CiAgICB9CiAgfQp9CgovKgogKiBUaGUg
Y29tcGlsZXIgaGFzIG5vIHByb2JsZW1zIGlmIHRoZQogKiBjb2RlIGZyYWdtZW50IGlzIGluIGEg
bWVtYmVyIGZ1bmN0aW9uLiAKICovCnZvaWQgQTo6bWV0aG9kKHZvaWQpIHsKICBpbnQgcnY7CiAg
aWYgKDAgIT0gKHJ2ID0gZnVuYygpKSkgewogICAgc3dpdGNoKHJ2KSB7CiAgICAgIGNhc2UgMToK
ICAgICAgICB0aHJvdyBjaGFyKCdhJyk7IC8vIHRocm93IGFueXRoaW5nIGhlcmUKICAgICAgZGVm
YXVsdDogCiAgICAgICAgdGhyb3cgZm9vKCk7CiAgICB9CiAgfQp9CgovKiogCiAqKiBUaGlzIGlz
IHdoZXJlIHRoZSBjb21waWxlciBkaWVzIHdpdGggYW4gaW50ZXJuYWwgZXJyb3IuCiAqKiAKICoq
IDEpIE9ubHkgb2NjdXJzIGluIGEgZGVzdHJ1Y3RvcgogKiogMikgT25seSBvY2N1cnMgaWYgYW4g
ZXhjZXB0aW9uIHdpdGggYW4gZXhwbGljaXQgZGVzdHJ1Y3RvciAKICoqICAgIGlzIHRocm93biBm
cm9tIHdpdGhpbiB0aGUgZGVmYXVsdCBjYXNlIGZvbGxvd2luZyBhbm90aGVyCiAqKiAgICBjYXNl
IHRoYXQgYWxzbyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB3aXRoaW4gYSBzd2l0Y2gKICoqICAgIHN0
YXRlbWVudCwgd2l0aGluIGEgY29uZGl0aW9uYWwgKGh1aD8pCiAqKiAzKSBUaGUgY29uZGl0aW9u
YWwgYW5kIHN3aXRjaCBzdGF0ZW1lbnQgbXVzdCAgCiAqKiAgICBldmFsdWF0ZSBhIG5vbi1jb25z
dGFudCBleHByZXNzaW9uIHRvIHByZXZlbnQKICoqICAgIHRyaXZpYWwgb3B0aW1pemF0aW9ucy4K
ICoqLwpBOjp+QSh2b2lkKSB7ICAgICAgLy8gTXVzdCBiZSBpbiBhIGRlc3RydWN0b3IKICBpbnQg
cnYgPSBmdW5jKCk7IC8vIE5lZWQgbm9uLWNvbnN0YW50IGV4cHJlc3Npb24gCiAgaWYgKHJ2KSAg
ICAgICAgICAvLyBNdXN0IGJlIGluc2lkZSBvZiBjb25kaXRpb25hbCAKICAgIHN3aXRjaChydikg
eyAgIAogICAgICBjYXNlIDE6IAogICAgICAgIC8vIHRocm93IGFueXRoaW5nIGhlcmU7CiAgICAg
ICAgdGhyb3cgY2hhcignYScpOyAKICAgICAgICAvLyBicmVhayBtYWtlcyBubyBkaWZmZXJlbmNl
CiAgICAgIGRlZmF1bHQ6IAogICAgICAgIC8vIFRoZSBleGNlcHRpb24gd2l0aCBhIGNvbnN0cnVj
dG9yCiAgICAgICAgdGhyb3cgZm9vKCk7ICAKICAgIH0KICB9ICAKfSAvLyA8LS0tLSBDb21waWxl
ciBzYXlzIGl0IGRpZXMgaGVyZS4uLgoK



More information about the Gcc-bugs mailing list