From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6895 invoked by alias); 1 Oct 2002 21:16:02 -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 6868 invoked by uid 71); 1 Oct 2002 21:16:01 -0000 Resent-Date: 1 Oct 2002 21:16:01 -0000 Resent-Message-ID: <20021001211601.6867.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, nathan@cray.com Resent-Reply-To: gcc-gnats@gcc.gnu.org, rrh@cray.com Received: (qmail 32724 invoked by uid 61); 1 Oct 2002 21:08:08 -0000 Message-Id: <20021001210808.32723.qmail@sources.redhat.com> Date: Tue, 01 Oct 2002 14:16:00 -0000 From: rrh@cray.com Reply-To: rrh@cray.com To: gcc-gnats@gcc.gnu.org Cc: nathan@cray.com X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) X-GNATS-Notify: nathan@cray.com Subject: optimization/8112: gcc 3.2 sparc-sun-solaris2.8: -O2 != -O1 X-SW-Source: 2002-10/txt/msg00023.txt.bz2 List-Id: >Number: 8112 >Category: optimization >Synopsis: gcc 3.2 sparc-sun-solaris2.8: -O2 != -O1 >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: wrong-code >Submitter-Id: net >Arrival-Date: Tue Oct 01 14:16:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: rrh@cray.com >Release: gcc 3.2 >Organization: >Environment: sparc-sun-solaris2.8 >Description: gcc -v shows: Reading specs from /sw/gen/sparc-sun-solaris2.8/gcc/3.2/lib/gcc-lib/sparc-sun-solaris2.8/3.2/specs Configured with: /export/data01/build/cpkg/programs/gcc/3.2/work.korsakoff.wc.cray.com/gcc-3.2/configure --with-gnu-as --with-as=/sw/gen/sparc-sun-solaris2.8/binutils/2.12.1/bin/as --with-gnu-ld --with-ld=/sw/gen/sparc-sun-solaris2.8/binutils/2.12.1/bin/ld --enable-languages=c++,f77,objc --with-local-prefix=/sw/gen/sparc-sun-solaris2.8/gcc/3.2 --prefix=/sw/gen/sparc-sun-solaris2.8/gcc/3.2 Thread model: posix gcc version 3.2 Compile the attached program using "g++ -O1"; execute; see the correct answer result=1 expect=1 Compile the attached program using "g++ -O2"; execute; see the incorrect answer result=0 expect=1 g++ -O3 also fails the same way as g++ -O2 The code uses a template to encapsulate operations on unsigned long long. Changing the liveness of some of the automatics (for example to print the intermediate results) will make the code do the right thing. This problem is not repeatable on gcc3.2 on i686-pc-linux. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="x64.cc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="x64.cc" I2luY2x1ZGUgPHN0ZGlvLmg+CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVpbnQ2NDsKY2xh c3MgQ29tbW9uQXNpY1NjYW5FbGVtZW50OwpjbGFzcyBQcmludGY7CgplbnVtIHsKICBDUl9MQVNU ID0gOCwKICBTQ19DT05GSUcgPSAwLAogIFNDX0ZPUkNFID0gMSwKICBTQ19MQVNUID0gOAp9OwoK dGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIEJUPgpjbGFzcyBUU21hbGxTZXQgewpwcml2YXRlOgog IFQgdmFsdWU7CnB1YmxpYzoKICBUU21hbGxTZXQodm9pZCkge3ZhbHVlID0gMHgwTEw7fQogIFRT bWFsbFNldChjb25zdCBUU21hbGxTZXQgJngpIHt2YWx1ZSA9IHgudmFsdWU7fQogIHZvaWQgb3Bl cmF0b3I9KGNvbnN0IFRTbWFsbFNldCAmeCkge3ZhbHVlID0geC52YWx1ZTt9CiAgdm9pZCBzZXRf ZnJvbV92YWx1ZShjb25zdCB1aW50NjQgdmFsdWUpIHt0aGlzLT52YWx1ZSA9IHZhbHVlO30KICB2 b2lkIHNldF96ZXJvKHZvaWQpIHt2YWx1ZSA9IDB4MExMO30KICB2b2lkIHNldF9hbGwodm9pZCkg e3ZhbHVlID0gfjB4MExMO30KICB2b2lkIHNldF9pdGVtKGNvbnN0IEJUIGl0ZW0pIHt2YWx1ZSB8 PSAoMUxMPDxpbnQoaXRlbSkpO30KICB2b2lkIGNscl9pdGVtKGNvbnN0IEJUIGl0ZW0pIHt2YWx1 ZSAmPSB+KDFMTDw8aW50KGl0ZW0pKTt9CiAgdm9pZCBhbmRfaXRlbShjb25zdCBCVCBpdGVtKSB7 dmFsdWUgJj0gKDFMTDw8aW50KGl0ZW0pKTt9CiAgaW50IGdldF9pdGVtKGNvbnN0IEJUIGl0ZW0p IGNvbnN0IHtyZXR1cm4gKHZhbHVlPj5pbnQoaXRlbSkpICYgMHgxO30KICBUU21hbGxTZXQgb3Bl cmF0b3J8KGNvbnN0IFRTbWFsbFNldCAmeCkgY29uc3QKICAgIHsgVFNtYWxsU2V0PFQsQlQ+IGJh Y2s7IGJhY2sudmFsdWUgPSB0aGlzLT52YWx1ZSB8IHgudmFsdWU7IHJldHVybiBiYWNrOyB9CiAg VFNtYWxsU2V0IG9wZXJhdG9yJihjb25zdCBUU21hbGxTZXQgJngpIGNvbnN0CiAgICB7IFRTbWFs bFNldDxULEJUPiBiYWNrOyBiYWNrLnZhbHVlID0gdGhpcy0+dmFsdWUgJiB4LnZhbHVlOyByZXR1 cm4gYmFjazsgfQogIFRTbWFsbFNldCBvcGVyYXRvcn4odm9pZCkgY29uc3QKICAgIHsgVFNtYWxs U2V0PFQsQlQ+IGJhY2s7IGJhY2sudmFsdWUgPSB+dGhpcy0+dmFsdWU7IHJldHVybiBiYWNrOyB9 CiAgdm9pZCBvcGVyYXRvcnw9KGNvbnN0IFRTbWFsbFNldCAmeCkge3RoaXMtPnZhbHVlIHw9IHgu dmFsdWU7fQogIHZvaWQgb3BlcmF0b3ImPShjb25zdCBUU21hbGxTZXQgJngpIHt0aGlzLT52YWx1 ZSAmPSB4LnZhbHVlO30KICBUIGFzX3ByaW50YWJsZSh2b2lkKSBjb25zdCB7cmV0dXJuIHZhbHVl O30KICBib29sIGlzX3plcm8odm9pZCkgY29uc3Qge3JldHVybiAodmFsdWUgPT0gMHgwTEwpO30K fTsKCnR5cGVkZWYgVFNtYWxsU2V0PHVpbnQ2NCxpbnQ+IENvbmZpZ1JlZ1ZhbHVlOwoKY2xhc3Mg Q29uZmlnUmVnU3RhdGVWYWx1ZSB7CmZyaWVuZCBjbGFzcyBDb25maWdSZWdTdGF0ZTsKcHJpdmF0 ZToKICBpbnQgY3I7CiAgQ29uZmlnUmVnVmFsdWUgdmFsdWU7CiAgYm9vbCBzZXQ7CiAgQ29tbW9u QXNpY1NjYW5FbGVtZW50ICphc2U7CiAgdm9pZCB0cmFjZW1vZChjb25zdCBjaGFyICp3aGVuY2Us IENvbmZpZ1JlZ1ZhbHVlIHgpOwpwdWJsaWM6CiAgQ29uZmlnUmVnU3RhdGVWYWx1ZSh2b2lkKTsK ICB2b2lkIG9wZXJhdG9yPShjb25zdCBDb25maWdSZWdTdGF0ZVZhbHVlICZydmFsKTsKICBDb25m aWdSZWdWYWx1ZSBnZXRjcih2b2lkKSBjb25zdDsKICBDb25maWdSZWdWYWx1ZSBvcmNyIChDb25m aWdSZWdWYWx1ZSB4KTsKICBDb25maWdSZWdWYWx1ZSBhbmRjcihDb25maWdSZWdWYWx1ZSB4KTsK ICBDb25maWdSZWdWYWx1ZSBzZXRjcihDb25maWdSZWdWYWx1ZSB4KTsKICB2b2lkIHVuc2V0Y3Io dm9pZCk7CiAgYm9vbCB3YXNzZXQodm9pZCk7Cn07CgpjbGFzcyBDb25maWdSZWdTdGF0ZSAvKjog cHVibGljIFRMaXN0RWxlbWVudDxDb25maWdSZWdTdGF0ZT4qLyB7CnB1YmxpYzoKICBDb21tb25B c2ljU2NhbkVsZW1lbnQgKnBhcmVudDsKcHVibGljOgogIENvbmZpZ1JlZ1N0YXRlVmFsdWUgY3Jb Q1JfTEFTVF07CiAgQ29uZmlnUmVnU3RhdGVWYWx1ZSBjcl9zY1tTQ19MQVNUXTsKcHVibGljOgog IENvbmZpZ1JlZ1N0YXRlKENvbW1vbkFzaWNTY2FuRWxlbWVudCAqb3duZXIpOwogIHZpcnR1YWwg fkNvbmZpZ1JlZ1N0YXRlKCk7CnB1YmxpYzoKICB2b2lkIG9wZXJhdG9yPShjb25zdCBDb25maWdS ZWdTdGF0ZSAmcnZhbCk7CnB1YmxpYzoKICB2b2lkIGR1bXAodm9pZCkgY29uc3Q7CiAgdm9pZCBw cmludChQcmludGYgKmZwLCBpbnQgcHJpbnRfbGV2ZWw9MTApIGNvbnN0Owp9OwoKY2xhc3MgQ29t bW9uQXNpY1NjYW5FbGVtZW50IHsKcHVibGljOgogIENvbmZpZ1JlZ1N0YXRlIHN0YXRlOwogIENv bW1vbkFzaWNTY2FuRWxlbWVudCh2b2lkKTsKfTsKCmNsYXNzIEFzaWNTY2FuRWxlbWVudCA6IHB1 YmxpYyBDb21tb25Bc2ljU2NhbkVsZW1lbnQgewpwcml2YXRlOgogIGludCBzY19wb3J0OwogIENv bW1vbkFzaWNTY2FuRWxlbWVudCAqc2NfcDsKcHVibGljOgogIGJvb2wgaXNfY29uZmlndXJlX2lu X3NjKHZvaWQpIGNvbnN0OwogIEFzaWNTY2FuRWxlbWVudCh2b2lkKTsKfTsKCmJvb2wgQXNpY1Nj YW5FbGVtZW50Ojppc19jb25maWd1cmVfaW5fc2Modm9pZCkgY29uc3QKewogICAgICAgIENvbmZp Z1JlZ1ZhbHVlIHBvcnRfbWFzazsgcG9ydF9tYXNrLnNldF9pdGVtKHNjX3BvcnQpOwoKICBjb25z dCBDb25maWdSZWdWYWx1ZSBjb25maWdfbWFzawogICAgPSBzY19wLT5zdGF0ZS5jcl9zY1tTQ19D T05GSUddLmdldGNyKCkgJiBwb3J0X21hc2s7CiAgY29uc3QgQ29uZmlnUmVnVmFsdWUgZm9yY2Vf bWFzawogICAgPSBzY19wLT5zdGF0ZS5jcl9zY1tTQ19GT1JDRSBdLmdldGNyKCkgJiBwb3J0X21h c2s7CgogIENvbmZpZ1JlZ1ZhbHVlIGNvbmZpZ19mb3JjZSA9IGNvbmZpZ19tYXNrICYgZm9yY2Vf bWFzazsKCiNpZiAwCi8vCi8vIGlmIHRoaXMgaXMgaW5jbHVkZWQsIHRoZW4gd2UgZ2V0IHRoZSBy aWdodCBhbnN3ZXIKLy8gcHJlc3VtYWJseSB0aGUgdXNlIG9mIHBvcnRfbWFzaywgY29uZmlnX21h c2sgYW5kIGZvcmNlX21hc2sKLy8ga2VlcHMgdGhlIG9wdGltaXplciBmcm9tIHNjcmV3aW5nIHVw Ci8vCnByaW50ZigicG9ydF9tYXNrPTB4JTA4eCBjb25maWc9MHglMDh4IGZvcmNlPTB4JTA4eFxu IiwKICB1bnNpZ25lZChwb3J0X21hc2suYXNfcHJpbnRhYmxlKCkpLAogIHVuc2lnbmVkKGNvbmZp Z19tYXNrLmFzX3ByaW50YWJsZSgpKSwKICB1bnNpZ25lZChmb3JjZV9tYXNrLmFzX3ByaW50YWJs ZSgpKQopOwojZW5kaWYKCiAgaWYgKCFjb25maWdfZm9yY2UuaXNfemVybygpKSB7CiAgICBwcmlu dGYoImZhdWx0XG4iKTsKICB9OwogIHJldHVybighY29uZmlnX21hc2suaXNfemVybygpKTsKfQoK QXNpY1NjYW5FbGVtZW50OjpBc2ljU2NhbkVsZW1lbnQodm9pZCkKewogIHNjX3BvcnQgPSAwOwog IHNjX3AgPSBuZXcgQ29tbW9uQXNpY1NjYW5FbGVtZW50KCk7CiAgQ29uZmlnUmVnVmFsdWUgdjsK ICB2LnNldF9mcm9tX3ZhbHVlKDB4ZmZmKTsKICBzY19wLT5zdGF0ZS5jcl9zY1tTQ19DT05GSUdd LnNldGNyKHYpOwp9CkNvbmZpZ1JlZ1ZhbHVlIENvbmZpZ1JlZ1N0YXRlVmFsdWU6OnNldGNyKENv bmZpZ1JlZ1ZhbHVlIHgpCnsKICB2YWx1ZSA9IHg7CiAgc2V0ID0gdHJ1ZTsKICByZXR1cm4gZ2V0 Y3IoKTsKfQoKQ29tbW9uQXNpY1NjYW5FbGVtZW50OjpDb21tb25Bc2ljU2NhbkVsZW1lbnQodm9p ZCkKICA6IHN0YXRlKHRoaXMpCnsKfQpDb25maWdSZWdWYWx1ZSBDb25maWdSZWdTdGF0ZVZhbHVl OjpnZXRjcih2b2lkKSBjb25zdAp7CiAgcmV0dXJuIHZhbHVlOwp9CkNvbmZpZ1JlZ1N0YXRlVmFs dWU6OkNvbmZpZ1JlZ1N0YXRlVmFsdWUodm9pZCkKewogIGNyID0gQ1JfTEFTVDsKICB2YWx1ZS5z ZXRfemVybygpOwogIHNldCA9IGZhbHNlOwogIGFzZSA9IDA7Cn0KQ29uZmlnUmVnU3RhdGU6OkNv bmZpZ1JlZ1N0YXRlKENvbW1vbkFzaWNTY2FuRWxlbWVudCAqb3duZXIpCnsKICBmb3IgKGludCBp ID0gMDsgaSA8IFNDX0xBU1Q7IGkrKykgewogICAgY3Jfc2NbaV0uY3IgPSBpOwogICAgY3Jfc2Nb aV0uYXNlID0gb3duZXI7CiAgfQogIGZvciAoaW50IGkgPSAwOyBpIDwgQ1JfTEFTVDsgaSsrKSB7 CiAgICBjcltpXS5jciA9IGk7CiAgICBjcl9zY1tpXS5hc2UgPSBvd25lcjsKICB9Cn0KCkNvbmZp Z1JlZ1N0YXRlOjp+Q29uZmlnUmVnU3RhdGUoKQp7Cn0KCmludCBtYWluKHZvaWQpCnsKICBBc2lj U2NhbkVsZW1lbnQgKmFzZSA9IG5ldyBBc2ljU2NhbkVsZW1lbnQoKTsKICBwcmludGYoInJlc3Vs dD0lZCBleHBlY3Q9MVxuIiwgaW50KGFzZS0+aXNfY29uZmlndXJlX2luX3NjKCkpKTsKICByZXR1 cm4gMDsKfQo=