From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6926 invoked by alias); 28 Aug 2002 15:26:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 6906 invoked by uid 71); 28 Aug 2002 15:26:02 -0000 Resent-Date: 28 Aug 2002 15:26:02 -0000 Resent-Message-ID: <20020828152602.6905.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, David.Margery@irisa.fr Received: (qmail 5607 invoked by uid 61); 28 Aug 2002 15:18:08 -0000 Message-Id: <20020828151808.5606.qmail@sources.redhat.com> Date: Wed, 28 Aug 2002 10:06:00 -0000 From: David.Margery@irisa.fr Reply-To: David.Margery@irisa.fr To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/7746: static members of template classes not allways constructed X-SW-Source: 2002-08/txt/msg00589.txt.bz2 List-Id: >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