This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c++/7746: static members of template classes not allways constructed


>Number:         7746
>Category:       c++
>Synopsis:       static members of template classes not allways constructed
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 28 08:26:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     David Margery
>Release:        gcc3 (GCC) 3.1 (Red Hat Linux 7.3 3.1-1)
>Organization:
>Environment:
Red Hat Linux 7.3 on a PIV 2GHz
>Description:
Program uses static members in template classes whose initialisation produces a side effect.

The compiled program does not show that side effect. 

The static member isn't initialized, which I understand as a bug in the generation of the different template instanciations

>How-To-Repeat:
compile the attachement using 
g++3 simplest.cxx -o simplest && ./simplest
result: 0 is printed, whereas 3 is expected

partial workaround:
compile
g++3 -DMIPSPRO simplest.cxx -o simplest && ./simplest
result printed: 2, whereas 3 is expected
>Fix:
none to suggest
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="simplest.cxx"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="simplest.cxx"

I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dHlwZWluZm8+
CiNpbmNsdWRlIDxsaXN0PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CgpjbGFzcyBQc0V2ZW50Q3Jl
YXRvciA7CgovKiogY2xhc3Mgd2hpY2ggaXMgdGhlIGNvbW1vbiBhbmNlc3RvciBvZiBhbGwgdmFs
dWVkIGV2ZW50cyAqLwpjbGFzcyBQc0V2ZW50IAp7CnB1YmxpYyA6CiAgIHZpcnR1YWwgflBzRXZl
bnQgKHZvaWQpIHt9IDsKCiAgIFBzRXZlbnQgKGNvbnN0IHN0cmluZyAmIGV2ZW50SWQpIHt9IDsK
fSA7CgoKCmNsYXNzIFBzRXZlbnRDcmVhdG9yIAp7CnB1YmxpYyA6CgogICB2aXJ0dWFsIH5Qc0V2
ZW50Q3JlYXRvciAodm9pZCkge30gOwogICAKICAgUHNFdmVudENyZWF0b3IgKGNvbnN0IHN0cmlu
ZyAmIHR5cGUpIDoKICAgICAgX3R5cGVJQ2FuQ3JlYXRlICh0eXBlKQogICB7CiAgICAgIG5iRXZl
bnRDcmVhdG9ycyArKyA7CiAgICAgIC8vY2VyciA8PCAiUHNFdmVudENyZWF0b3I6OlBzRXZlbnRD
cmVhdG9yIiA8PCBlbmRsIDsKICAgfSA7CiAgICAgIAogICAvKiogdG8gaGVscCBhdm9pZCBhZ2dy
ZXNpdmUgb3B0aW1pc2F0aW9ucyAoY29ycmVjdGlvbiBzdWdnZWN0ZWQgYnkgU0dJIGZvciB0aGUg
bWlwcy1wcm8gY29tcGlsZXIqLwogICB2aXJ0dWFsIGJvb2wgdG91Y2ggKHZvaWQpCiAgIHsKICAg
ICAgcmV0dXJuIHRydWUgOwogICB9IDsKICAgCiAgIC8qKiBmaW5kIG91dCBob3cgbWFueSBldmVu
dCBjcmVhdG9ycyB3ZXJlIG1hZGUgYXZhaWxhYmxlICovCiAgIHN0YXRpYyBpbnQgZ2V0TmJFdmVu
dENyZWF0b3JzICh2b2lkKSAKICAgewogICAgICByZXR1cm4gbmJFdmVudENyZWF0b3JzIDsKICAg
fSA7CiAgIApwcm90ZWN0ZWQgOgoKICAgLyoqIHJlbWVtYmVyIHRoZSBzdHJpbmcgZGVzY3JpYmlu
ZyB0aGUgY2xhc3Mgb2YgZXZlbnRzIHRoYXQgY2FuIGJlIGNyZWF0ZWQgKi8KICAgc3RyaW5nIF90
eXBlSUNhbkNyZWF0ZSA7CgogICAvKiogdGhlIG51bWJlciBvZiBldmVudCBjcmVhdG9ycyBjcmVh
dGVkICovCiAgIHN0YXRpYyBpbnQgbmJFdmVudENyZWF0b3JzIDsKICAgCgp9IDsKCnRlbXBsYXRl
IDx0eXBlbmFtZSBVc2VyVHlwZT4KY2xhc3MgUHNWYWx1ZWRFdmVudCA6IHB1YmxpYyBQc0V2ZW50
IAp7CiAgIApwdWJsaWMgOgogICAKICAgVXNlclR5cGUgdmFsdWUgOyAKICAgCiAgIFBzVmFsdWVk
RXZlbnQgKGNvbnN0IHN0cmluZyAmIGV2ZW50LCAKCQkgIGNvbnN0IFVzZXJUeXBlICYgdXNlclZh
bHVlKSA7CiAgIAogICBQc1ZhbHVlZEV2ZW50IChjb25zdCBzdHJpbmcgJiBldmVudCkgOwogICAK
ICAgdmlydHVhbCB+UHNWYWx1ZWRFdmVudCAodm9pZCkgOwogICAKcHJvdGVjdGVkIDoKICAgCiAg
IGNsYXNzIFZhbHVlZEV2ZW50Q3JlYXRvciA6IHB1YmxpYyBQc0V2ZW50Q3JlYXRvciAKICAgewog
ICAgICAKICAgcHVibGljIDoKICAgICAgCiAgICAgIHZpcnR1YWwgflZhbHVlZEV2ZW50Q3JlYXRv
ciAodm9pZCkge30gCiAgICAgIAogICAgICBWYWx1ZWRFdmVudENyZWF0b3IgKCkgOiBQc0V2ZW50
Q3JlYXRvciAodHlwZWlkIChQc1ZhbHVlZEV2ZW50PFVzZXJUeXBlPikubmFtZSgpKSAKICAgICAg
ewoJIC8vY2VyciA8PCAiVmFsdWVkRXZlbnRDcmVhdG9yIiA8PCBlbmRsIDsKICAgICAgfQoKICAg
fSA7Cgpwcm90ZWN0ZWQgOgogICAKICAgLyoqIHRoZSBsb2NhbCBldmVudCBjcmVhdG9yICovCiAg
IHN0YXRpYyBWYWx1ZWRFdmVudENyZWF0b3IgbXlFdmVudENyZWF0b3IgOyAgCn0gOwoKCnRlbXBs
YXRlIDx0eXBlbmFtZSBVc2VyVHlwZT4KdHlwZW5hbWUgUHNWYWx1ZWRFdmVudDxVc2VyVHlwZT46
OlZhbHVlZEV2ZW50Q3JlYXRvciBQc1ZhbHVlZEV2ZW50PFVzZXJUeXBlPjo6bXlFdmVudENyZWF0
b3IgOwoKCgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVXNlclR5cGU+CgpQc1ZhbHVlZEV2ZW50PFVzZXJU
eXBlPjo6UHNWYWx1ZWRFdmVudCAoY29uc3Qgc3RyaW5nICYgZXZlbnQsIAoJCQkJICAgICAgICBj
b25zdCBVc2VyVHlwZSAmIHVzZXJWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgICA6IFBzRXZl
bnQoZXZlbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKHVzZXJWYWx1ZSkgCnsK
I2lmZGVmIE1JUFNQUk8KICAgc3RhdGljIGJvb2wgaW5zdGFuY2lhdGVkID0gbXlFdmVudENyZWF0
b3IudG91Y2ggKCkgOwojZW5kaWYKfQoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCnRlbXBsYXRlIDx0eXBlbmFtZSBVc2VyVHlwZT4KUHNWYWx1ZWRFdmVudDxVc2Vy
VHlwZT46OlBzVmFsdWVkRXZlbnQgKGNvbnN0IHN0cmluZyAmIGV2ZW50KQogICAgICAgICAgICAg
ICAgICAgICAgIDogUHNFdmVudCAoZXZlbnQpIAp7CiNpZmRlZiBNSVBTUFJPCiAgIHN0YXRpYyBi
b29sIGluc3RhbmNpYXRlZCA9IG15RXZlbnRDcmVhdG9yLnRvdWNoICgpIDsKI2VuZGlmCn0KCi8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgp0ZW1wbGF0ZSA8dHlwZW5h
bWUgVXNlclR5cGU+CgpQc1ZhbHVlZEV2ZW50PFVzZXJUeXBlPjo6flBzVmFsdWVkRXZlbnQgKHZv
aWQpICAKewojaWZkZWYgTUlQU1BSTwogICBzdGF0aWMgYm9vbCBpbnN0YW5jaWF0ZWQgPSBteUV2
ZW50Q3JlYXRvci50b3VjaCAoKSA7ICAKI2VuZGlmCn0KCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgppbnQgUHNFdmVudENyZWF0b3I6Om5iRXZlbnRDcmVhdG9ycyA9
IDAgOwoKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppbnQgbWFp
biAoaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10gKSAKewogICBsaXN0IDxQc0V2ZW50ICo+IG15TGlz
dCA7CiAgIGNlcnIgPDwgIm5iRXZlbnRDcmVhdG9ycyA9ICIgPDwgUHNFdmVudENyZWF0b3I6Omdl
dE5iRXZlbnRDcmVhdG9ycyAoKSA8PCBlbmRsIDsKCiAgIFBzRXZlbnQgKiBldmVudDEgPSBuZXcg
UHNWYWx1ZWRFdmVudCA8aW50PiAoInRvdG8iLCAxKSA7CiAgIG15TGlzdC5wdXNoX2JhY2soIGV2
ZW50MSApIDsKCiAgIFBzRXZlbnQgKiBldmVudDIgPSBuZXcgUHNWYWx1ZWRFdmVudCA8ZmxvYXQ+
ICgidG90byIsIDIpIDsKICAgbXlMaXN0LnB1c2hfYmFjayggZXZlbnQyICkgOwoKCiAgIC8vIElT
TyBub3JtIGZvciBDKyssIHBhcmFncmFwaCAzLjYuMi4zIHNlZW1zIHRvIGltcGx5IHRoYXQgdGhl
IGV2ZW50IGNyZWF0b3Igb2YgY2xhc3MgUHNWYWx1ZWRFdmVudDxzaG9ydD4gc2hvdWxkIGJlIGNy
ZWF0ZWQgKGZpcnN0IHVzZSBvZiB0aGUgdHJhbnNsYXRpb24gdW5pdCkKCiAgIGZvciAobGlzdDxQ
c0V2ZW50ICo+OjppdGVyYXRvciBpID0gbXlMaXN0LmJlZ2luKCkgOwoJaSAhPSBteUxpc3QuZW5k
KCkgOwoJaSA9IG15TGlzdC5lcmFzZSAoaSkgKQogICAgICB7CgkgLy8gaGVyZSB3ZSBtYW5pcHVs
YXRlIGEgdmFsdWVkIGV2ZW50IG9mIHR5cGUgUHNWYWx1ZWRFdmVudDxzaG9ydD4sIGJ1dCB0aGUg
YXNzb2NpYXRlZCBldmVudGNyZWF0b3IgZG9lc24ndCBnZXQgaW5zdGFuY2lhdGVkLgoKCSAvLyBJ
U08gbm9ybSBmb3IgQysrLCBwYXJhZ3JhcGggMy42LjIuMyBzZWVtcyB0byBpbXBseSB0aGF0IHRo
ZSBldmVudCBjcmVhdG9yIG9mIGNsYXNzIFBzVmFsdWVkRXZlbnQ8c2hvcnQ+IHNob3VsZCBiZSBj
cmVhdGVkIChmaXJzdCB1c2Ugb2YgdGhlIHRyYW5zbGF0aW9uIHVuaXQpCgkgCgkgUHNWYWx1ZWRF
dmVudDxzaG9ydD4gKiBldmVudDMgPSBkeW5hbWljX2Nhc3Q8UHNWYWx1ZWRFdmVudCA8c2hvcnQ+
ICo+ICgqaSkgOwoKCSBpZiAoZXZlbnQzICE9IE5VTEwpIAoJICAgIHsKCSAgICAgICBjb3V0PDxl
dmVudDMtPnZhbHVlPDxlbmRsIDsKCSAgICB9ICAgCgkgZGVsZXRlICppIDsKICAgICAgfQoKICAg
Y2VyciA8PCAibmJFdmVudENyZWF0b3JzID0gIiA8PCBQc0V2ZW50Q3JlYXRvcjo6Z2V0TmJFdmVu
dENyZWF0b3JzICgpIDw8IGVuZGwgOwoKICAgcmV0dXJuIDAgOwoKfQoKLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]