public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c++/4524: member of const instance can be modifies via non-const pointer to member
@ 2001-10-10 10:06 philipp.bachmann
  0 siblings, 0 replies; 2+ messages in thread
From: philipp.bachmann @ 2001-10-10 10:06 UTC (permalink / raw)
  To: gcc-gnats

>Number:         4524
>Category:       c++
>Synopsis:       member of const instance can be modifies via non-const pointer to member
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 10 10:06:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Philipp Bachmann
>Release:        g++ 2.95.3
>Organization:
>Environment:
Sun Solaris 7 SPARC
>Description:
A non-const pointer to a member may be constructed such that even members of const  instances can be modified without explicitly casting away "const".

Though B. Stroustrup's C++-book is quite sparse concerning this specific topic and I don't have a copy of the C++-standard, I think that this is illegal.

Sun Workshop / Forte C++ 6 U 1 doesn't allow this. I don't have further compilers at hand to check on their behaviour...
>How-To-Repeat:
Compile with the definition of "BUG0" (line 13) commented in. Just run the resulting binary.
>Fix:
n.a.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="pointer2member.cxx"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="pointer2member.cxx"

LyogJExvZzogcG9pbnRlcjJtZW1iZXIuY3h4LHYgJA0KICogUmV2aXNpb24gMS4xICAyMDAxLzEw
LzEwIDE3OjQ0OjU3ICBiYWNobGlwcA0KICogSW5pdGlhbCByZXZpc2lvbg0KICogKi8NCg0KLyog
UHVycG9zZTogRGVtb25zdHJhdGUgdHdvIHBvdGVudGlhbCBidWdzIGluIEdOVSBnKysgMi45NS4z
Og0KICAgQlVHMDogQWxsb3dzIGZvciBtb2RpZnlpbmcgbWVtYmVycyBvZiBjb25zdCBpbnN0YW5j
ZXMgdXNpbmcgbm9uIGNvbnN0DQogICAgICAgICBwb2ludGVyIHRvIGVsZW1lbnRzIGFuZA0KICAg
QlVHMTogTWVtYmVyIGZ1bmN0aW9ucyBvZiBjbGFzcyB0ZW1wbGF0ZXMgY2FuJ3QgaGF2ZSBlbGVt
ZW50IHBvaW50ZXINCiAgICAgICAgIGFyZ3VtZW50cyBidWlsdCBvdXQgb2YgdHlwZWRlZnMgaW4g
dGhlIGNsYXNzZXMgcmVmZXJyZWQgdG8gYnkgdGhlDQoJIHRlbXBsYXRlIGFyZ3VtZW50cyBldmVu
IGlmICJ0eXBlbmFtZSJkLiAqLw0KDQojZGVmaW5lIEJVRzANCiNkZWZpbmUgQlVHMQ0KDQojaW5j
bHVkZSA8aW9zdHJlYW0+DQojaW5jbHVkZSA8c3RkbGliLmg+DQoNCnN0YXRpYyBjaGFyIF9yY3Np
ZFtdPSIkSWQ6IHBvaW50ZXIybWVtYmVyLmN4eCx2IDEuMSAyMDAxLzEwLzEwIDE3OjQ0OjU3IGJh
Y2hsaXBwIEV4cCAkIjsNCg0KdXNpbmcgbmFtZXNwYWNlIHN0ZDsNCg0KLyogRGVjbGFyYXRpb25z
Li4uICovDQpzdHJ1Y3QgYmFzZV90IHsNCiAgdHlwZWRlZiBpbnQgbWVtYmVyVHlwZTsNCiAgaW50
IGFOdW1iZXJfOw0KICBiYXNlX3Qodm9pZCk7DQogIHZvaWQgcHJpbnQodm9pZCkgY29uc3Q7DQp9
Ow0KDQp2b2lkIHNldChiYXNlX3QgJiwgaW50IGJhc2VfdDo6KiBjb25zdCAmLGludCk7DQoNCnRl
bXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHNldHRlcjAgew0KICB2b2lkIG9wZXJhdG9yKCkoVCAm
LCBpbnQgVDo6KiBjb25zdCAmLGludCk7DQp9Ow0KDQojaWZuZGVmIEJVRzENCnRlbXBsYXRlPCBj
bGFzcyBUID4gc3RydWN0IHNldHRlcjEgew0KICB2b2lkIHRlc3QodHlwZW5hbWUgVDo6bWVtYmVy
VHlwZSk7DQogIHZvaWQgb3BlcmF0b3IoKShUICYsIHR5cGVuYW1lIFQ6Om1lbWJlclR5cGUgVDo6
KiBjb25zdCAmLGludCk7DQp9Ow0KI2Vsc2UNCnRlbXBsYXRlPCBjbGFzcyBULGNsYXNzIFUgPiBz
dHJ1Y3Qgc2V0dGVyMSB7DQogIHZvaWQgb3BlcmF0b3IoKShUICYsVSBjb25zdCAmLGludCk7DQp9
Ow0KI2VuZGlmDQoNCi8qIERlZmluaXRpb25zLi4uICovDQpiYXNlX3Q6OmJhc2VfdCh2b2lkKSA6
IGFOdW1iZXJfKDApIHsNCn0NCg0Kdm9pZCBiYXNlX3Q6OnByaW50KHZvaWQpIGNvbnN0IHsNCiAg
Y2Vycjw8ImFOdW1iZXJfID0gIjw8YU51bWJlcl88PGVuZGw7DQp9DQoNCnZvaWQgc2V0KGJhc2Vf
dCAmYiwgaW50IGJhc2VfdDo6KiBjb25zdCAmcCxpbnQgaSkgew0KICBiLipwPWk7DQp9DQoNCnRl
bXBsYXRlPGNsYXNzIFQ+DQp2b2lkIHNldHRlcjA8IFQgPjo6b3BlcmF0b3IoKShUICZ0LCBpbnQg
VDo6KiBjb25zdCAmcCxpbnQgaSkgew0KICB0LipwPWk7DQp9DQoNCiNpZm5kZWYgQlVHMQ0KdGVt
cGxhdGU8Y2xhc3MgVD4NCnZvaWQgc2V0dGVyMTwgVCA+Ojp0ZXN0KHR5cGVuYW1lIFQ6Om1lbWJl
clR5cGUgaSkgew0KfQ0KDQp0ZW1wbGF0ZTxjbGFzcyBUPg0Kdm9pZCBzZXR0ZXIxPCBUID46Om9w
ZXJhdG9yKCkoVCAmdCwgdHlwZW5hbWUgVDo6bWVtYmVyVHlwZSBUOjoqIGNvbnN0ICZwLGludCBp
KSB7DQogIHQuKnA9aTsNCn0NCiNlbHNlDQp0ZW1wbGF0ZTxjbGFzcyBULGNsYXNzIFU+DQp2b2lk
IHNldHRlcjE8IFQsVSA+OjpvcGVyYXRvcigpKFQgJnQsVSBjb25zdCAmcCxpbnQgaSkgew0KICB0
LipwPWk7DQp9DQojZW5kaWYNCg0KaW50IG1haW4oKSB7DQogIGJhc2VfdCBiMDsNCiAgaW50IGJh
c2VfdDo6KnAwKCZiYXNlX3Q6OmFOdW1iZXJfKTsNCiAgYjAucHJpbnQoKTsNCiAgYjAuKnAwPTQy
Ow0KICBiMC5wcmludCgpOw0KDQogIGNvbnN0IGJhc2VfdCBiMTsNCiAgaW50IGNvbnN0IGJhc2Vf
dDo6KnAxKCZiYXNlX3Q6OmFOdW1iZXJfKTsNCiAgYjEucHJpbnQoKTsNCiAgLy8gT25seSBTdW4g
V29ya3Nob3AgLyBGb3J0ZSBDQyA2IFUgMSBkb2Vzbid0IGFjY2VwdCB0aGlzIC0gZysrIDIuOTUu
MyBkb2VzIQ0KICAjaWZkZWYgQlVHMA0KICAgIGIxLipwMD00MjsNCiAgI2VuZGlmDQogIGIxLnBy
aW50KCk7DQoNCiAgLy8gSWxsZWdhbCB3aXRoIGJvdGggU3VuIFdvcmtzaG9wIC8gRm9ydGUgQ0Mg
NiBVIDEgYW5kIGcrKyAyLjk1LjMuLi4NCiAgLy8gYjAuKnAxPTExOw0KICBiMC5wcmludCgpOw0K
DQogIHNldChiMCxwMCwyMik7DQogIGIwLnByaW50KCk7DQoNCiAgc2V0dGVyMDxiYXNlX3Q+IHMw
Ow0KICBzMChiMCxwMCwxMTEpOw0KICBiMC5wcmludCgpOw0KDQogICNpZm5kZWYgQlVHMQ0KICAg
IHNldHRlcjE8YmFzZV90PiBzMTsNCiAgI2Vsc2UNCiAgICBzZXR0ZXIxPGJhc2VfdCxiYXNlX3Q6
Om1lbWJlclR5cGUgYmFzZV90OjoqPiBzMTsNCiAgI2VuZGlmDQogIHMxKGIwLHAwLDExMik7DQog
IGIwLnByaW50KCk7DQoNCiAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsNCn0NCg==


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: c++/4524: member of const instance can be modifies via non-const pointer to member
@ 2001-10-22  9:49 lerdsuwa
  0 siblings, 0 replies; 2+ messages in thread
From: lerdsuwa @ 2001-10-22  9:49 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, nobody, philipp.bachmann

Synopsis: member of const instance can be modifies via non-const pointer to member

State-Changed-From-To: open->closed
State-Changed-By: lerdsuwa
State-Changed-When: Mon Oct 22 09:49:56 2001
State-Changed-Why:
    Fixed in the main trunk (future gcc 3.1).

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=4524&database=gcc


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-10-22  9:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-10 10:06 c++/4524: member of const instance can be modifies via non-const pointer to member philipp.bachmann
2001-10-22  9:49 lerdsuwa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).