c++/2053: Static cast from parent to children is working but shouldn't
philippeb@corel.com
philippeb@corel.com
Wed Feb 21 13:56:00 GMT 2001
>Number: 2053
>Category: c++
>Synopsis: Static cast from parent to children is working but shouldn't
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Feb 21 13:56:02 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: gcc
>Release: 2.95.3 20010101
>Organization:
>Environment:
Linux 2.4.0 i686
>Description:
The compiler is not preventing a cast from a parent pointer
to a children pointer unless inheritance is virtual.
>How-To-Repeat:
struct A {}; struct B : A {};
A * p1 = new A;
B * p2 = static_cast<B *>(p1);
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="casts.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="casts.cpp"
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+CiNpbmNsdWRlIDxtYWxsb2Mu
aD4KCnN0cnVjdCBBCnsKICB2aXJ0dWFsIHZvaWQgbmFtZSgpIHsgY291dCA8PCAiQSI7IH0KfTsK
CnN0cnVjdCBCIDogQQp7CiAgaW50IG9bMTAwMF07CiAgaW50IGE7CiAgdmlydHVhbCB2b2lkIG5h
bWUoKSB7IGNvdXQgPDwgIkIiOyB9Cn07Cgp2b2lkICogb3BlcmF0b3IgbmV3IChzaXplX3QgcykK
ewogIHZvaWQgKiBwID0gbWFsbG9jKHMpOwogIGNvdXQgPDwgIioqKiBNZW1vcnkgQWxsb2NhdGlv
biAqKioiIDw8IGVuZGw7CiAgY291dCA8PCAiU3RhcnQ6ICAgICAgIiA8PCBwIDw8IGVuZGw7CiAg
Y291dCA8PCAiRW5kOiAgICAgICAgIiA8PCAodm9pZCAqKSAoKGNoYXIgKikgcCArIHMpIDw8IGVu
ZGw7CiAgcmV0dXJuIHA7Cn0KCmludCBtYWluKCkKewogIHVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgog
IEEgKiBwMiA9IG5ldyBBOwogIEIgKiBwMyA9IHN0YXRpY19jYXN0PEIgKj4ocDIpOwoKICBjb3V0
IDw8ICIqKiogQSAqKioiIDw8IGVuZGw7CiAgY291dCA8PCAiU3RhcnQ6ICAgICAgIiA8PCBwMiA8
PCBlbmRsOwogIGNvdXQgPDwgIkVuZDogICAgICAgICIgPDwgKHZvaWQgKikgKChjaGFyICopIHAy
ICsgc2l6ZW9mKCogcDIpKSA8PCBlbmRsOwoKICBjb3V0IDw8ICIqKiogQiAqKioiIDw8IGVuZGw7
CiAgY291dCA8PCAiU3RhcnQ6ICAgICAgIiA8PCBwMyA8PCBlbmRsOwogIGNvdXQgPDwgIkVuZDog
ICAgICAgICIgPDwgKHZvaWQgKikgKChjaGFyICopIHAzICsgc2l6ZW9mKCogcDMpKSA8PCBlbmRs
OwoKICBjb3V0IDw8ICJNZW1iZXIgJ2EnOiAiIDw8ICYgcDMtPmEgPDwgZW5kbDsKCiAgY291dCA8
PCAiTmFtZSA9ICAgICAgICAgICAiOyBwMy0+bmFtZSgpOyBjb3V0IDw8IGVuZGw7CiAgY291dCA8
PCAiVHlwZSBJbmZvIE5hbWUgPSAiIDw8IHR5cGVpZCgqIHAzKS5uYW1lKCkgPDwgZW5kbDsKICBw
My0+YSA9IDE7Cn0K
More information about the Gcc-bugs
mailing list