c++/1050: trouble with dynamic_cast

wka@math.duke.edu wka@math.duke.edu
Tue Dec 12 09:56:00 GMT 2000


>Number:         1050
>Category:       c++
>Synopsis:       trouble with dynamic_cast
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 12 09:56:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     William K. Allard
>Release:        ggcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
>Organization:
>Environment:
Linux on i686
>Description:
A dynamic_cast is incorrectly computed.  The program that
produces the incorrect address runs to completion.  If one
tried to use the pointer returned the program would crash
and/or produece incorrect results.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bad.C"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bad.C"

Ly9pZiB0aGlzIGZpbGUgaXMgYmFkLkMsIHJ1bgovL2crKyAtZyAtbyBiYWQgYmFkLkMgCi8vdG8g
Y29tcGlsZTsKCi8vdGhlIHBvaW50ZXIgcHBiLCBvZiB0eXBlIEJhZERlcml2ZWQqLCB3aGVuIGFz
c2lnbmVkIHRvIGJ5IHRoZSBkeW5hbWljX2Nhc3QgCi8vYmVsb3csIHNob3VsZCBlcXVhbCAmYiBi
ZWxvdy4gIEl0IGVuZHMgdXAgYmVpbmcgNCBieXRlcyB0byB0aGUgbGVmdAovL0kgZG9uJ3QgYmVs
aWV2ZSBJIGJyb2tlIGFueSBydWxlcwovL0dvb2REZXJpdmVkLCB3aGljaCBpcyBqdXN0IGxpa2Ug
QmFkRGVyaXZlZCBleGNlcHQgZm9yIHRoZSBvcmRlciBvZiAKLy9kZXJpdmF0aW9uLCB3b3JrcwoK
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQmFzZTEgewpwdWJsaWM6CiAgQmFzZTEoKSB7fQog
IC8vaWYgdGhpcyBkZXN0cnVjdG9yIGlzIHVzZWQsIHRoZSBjb2RlIHdpbGwgd29yayBvawogIC8v
dmlydHVhbCB+QmFzZTEoKSB7fSAgCn07CgpjbGFzcyBCYXNlMiB7CnB1YmxpYzoKICBCYXNlMigp
IHt9CiAgdmlydHVhbCB+QmFzZTIoKSB7fSAgLy92aXJ0dWFsIHRvIGVmZmVjdCBwb2x5bW9ycGhp
c20KfTsKCmNsYXNzIEJhZERlcml2ZWQgOiBwdWJsaWMgQmFzZTEsIHB1YmxpYyBCYXNlMiB7ICAK
cHVibGljOgogIEJhZERlcml2ZWQoKSA6IEJhc2UxKCksIEJhc2UyKCkge30KfTsKCmNsYXNzIEdv
b2REZXJpdmVkIDogcHVibGljIEJhc2UyLCBwdWJsaWMgQmFzZTEgeyAKcHVibGljOgogIEdvb2RE
ZXJpdmVkKCkgOiBCYXNlMigpLCBCYXNlMSgpIHt9Cn07CgoKY2xhc3MgQmFkTW9yZURlcml2ZWQg
OiBwdWJsaWMgQmFkRGVyaXZlZCB7CnB1YmxpYzoKICBCYWRNb3JlRGVyaXZlZCgpIDogQmFkRGVy
aXZlZCgpIHt9Cn07CgpjbGFzcyBHb29kTW9yZURlcml2ZWQgOiBwdWJsaWMgR29vZERlcml2ZWQg
ewpwdWJsaWM6CiAgR29vZE1vcmVEZXJpdmVkKCkgOiBHb29kRGVyaXZlZCgpIHt9Cn07CgppbnQg
bWFpbigpIHsKCiAgQmFkTW9yZURlcml2ZWQgYjsKICBCYWREZXJpdmVkKiBwYj0mYjsKICBCYWRN
b3JlRGVyaXZlZCogcHBiPWR5bmFtaWNfY2FzdDxCYWRNb3JlRGVyaXZlZCo+KHBiKTsKICAvL3Bw
YiBvdWdodCB0byBlcXVhbCAmYiBhbmQgaXQgZG9lc24ndDsgaXQncyA0IGJ5dGVzIHRvIHRoZSBs
ZWZ0CiAgY291dCA8PCAiJmI9IiA8PCAmYiA8PCAiIHBwYj0iIDw8IHBwYiA8PCBlbmRsOwoKICBH
b29kTW9yZURlcml2ZWQgZzsKICBHb29kRGVyaXZlZCogcGc9Jmc7CiAgR29vZE1vcmVEZXJpdmVk
KiBwcGc9ZHluYW1pY19jYXN0PEdvb2RNb3JlRGVyaXZlZCo+KHBnKTsKICAvL3RoaXMgb25lIGlz
IG9rCiAgY291dCA8PCAiJmc9IiA8PCAmZyA8PCAiIHBwZz0iIDw8IHBwZyA8PCBlbmRsOwoKICBy
ZXR1cm4gMDsKfQoK


More information about the Gcc-prs mailing list