This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c++/2901: Program crash when using -fno-rtti with exceptions
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c++/2901: Program crash when using -fno-rtti with exceptions
- From: pere at hungry dot com
- Date: 22 May 2001 18:27:29 -0000
- Reply-To: pere at hungry dot com
>Number: 2901
>Category: c++
>Synopsis: Program crash when using -fno-rtti with exceptions
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: wrong-code
>Submitter-Id: net
>Arrival-Date: Tue May 22 11:36:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Petter Reinholdtsen
>Release: gcc-2.95.2
>Organization:
>Environment:
Debian GNU/Linux 2.2
>Description:
When compiling the enclosed source with -fno-rtti, the
generated program crashes with SIGSEGV in __cplus_type_matcher with the following backtrace:
#0 0x80487c0 in _IO_stdin_used ()
#1 0x40039034 in __cplus_type_matcher ()
from /usr/lib/libstdc++-libc6.1-2.so.3
#2 0x40038453 in __eh_rtime_match () from /usr/lib/libstdc++-libc6.1-2.so.3
#3 0x804871d in g (i=0) at gcc-throw-bug.cpp:57
#4 0x8048758 in main () at gcc-throw-bug.cpp:63
I believe if the compiler is unable to generate correct code, it should give an compiler error.
>How-To-Repeat:
Compile the source with -g -fno-rtti and run the resulting
program.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="gcc-throw-bug.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gcc-throw-bug.cpp"
LyoKCiAgJSBjKysgLS12ZXJzaW9uCiAgMi45NS4yCiAgJSBjKysgLWcgLWZuby1ydHRpIC1vIGdj
Yy10aHJvdy1idWcgZ2NjLXRocm93LWJ1Zy5jcHAKICAlICQgZ2RiIC4vZ2NjLXRocm93LWJ1Zwog
IEdOVSBnZGIgMTk5OTA5MjgKICBDb3B5cmlnaHQgMTk5OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4KICBHREIgaXMgZnJlZSBzb2Z0d2FyZSwgY292ZXJlZCBieSB0aGUgR05VIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UsIGFuZCB5b3UgYXJlCiAgd2VsY29tZSB0byBjaGFuZ2UgaXQgYW5k
L29yIGRpc3RyaWJ1dGUgY29waWVzIG9mIGl0IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4KICBU
eXBlICJzaG93IGNvcHlpbmciIHRvIHNlZSB0aGUgY29uZGl0aW9ucy4KICBUaGVyZSBpcyBhYnNv
bHV0ZWx5IG5vIHdhcnJhbnR5IGZvciBHREIuICBUeXBlICJzaG93IHdhcnJhbnR5IiBmb3IgZGV0
YWlscy4KICBUaGlzIEdEQiB3YXMgY29uZmlndXJlZCBhcyAiaTY4Ni1wYy1saW51eC1nbnUiLi4u
CiAgKG5vIGRlYnVnZ2luZyBzeW1ib2xzIGZvdW5kKS4uLgogIChnZGIpIHIKICBTdGFydGluZyBw
cm9ncmFtOiAvaG9tZS9wZXJlL2J1Z3MvLi9nY2MtdGhyb3ctYnVnCiAgKG5vIGRlYnVnZ2luZyBz
eW1ib2xzIGZvdW5kKS4uLihubyBkZWJ1Z2dpbmcgc3ltYm9scyBmb3VuZCkuLi4KICAobm8gZGVi
dWdnaW5nIHN5bWJvbHMgZm91bmQpLi4uKG5vIGRlYnVnZ2luZyBzeW1ib2xzIGZvdW5kKS4uLgog
IFByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KICAw
eDgwNDg3YzAgaW4gX0lPX3N0ZGluX3VzZWQgKCkKICAoZ2RiKSBidAogICMwICAweDgwNDg3YzAg
aW4gX0lPX3N0ZGluX3VzZWQgKCkKICAjMSAgMHg0MDAzOTAzNCBpbiBfX2NwbHVzX3R5cGVfbWF0
Y2hlciAoKQogICAgIGZyb20gL3Vzci9saWIvbGlic3RkYysrLWxpYmM2LjEtMi5zby4zCiAgIzIg
IDB4NDAwMzg0NTMgaW4gX19laF9ydGltZV9tYXRjaCAoKSBmcm9tIC91c3IvbGliL2xpYnN0ZGMr
Ky1saWJjNi4xLTIuc28uMwogICMzICAweDgwNDg3MWQgaW4gZyAoaT0wKSBhdCBnY2MtdGhyb3ct
YnVnLmNwcDo1NwogICM0ICAweDgwNDg3NTggaW4gbWFpbiAoKSBhdCBnY2MtdGhyb3ctYnVnLmNw
cDo2MwogIChnZGIpCgoqLwoKI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8YXNzZXJ0Lmg+
Cgp0eXBlZGVmIGludCBPUF9TVEFUVVM7CgplbnVtIHsKICBPSywKICBFUlIKfTsKCmludCBmKGlu
dCBpKQp7CiAgaWYgKDAgPT0gaSkKICAgIHRocm93ICgoT1BfU1RBVFVTKUVSUik7CiAgcmV0dXJu
IGk7Cn0KCmludCBnKGludCBpKQp7CiAgaW50IHJldHZhbCA9IDA7CiAgdHJ5IHsKICAgIHJldHZh
bCA9IGYoaSk7CiAgfSBjYXRjaCAoT1BfU1RBVFVTIGVycm9yKSB7CiAgfQogIHJldHVybiByZXR2
YWw7Cn0KCmludAptYWluKCkKewogIGcoMCk7CiAgZygxKTsgLy8gVGhpcyBjYWxsIGNyYXNoZXMK
ICByZXR1cm4gMDsKfQo=