From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4414 invoked by alias); 18 Apr 2002 08:56:05 -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 4361 invoked by uid 71); 18 Apr 2002 08:56:02 -0000 Resent-Date: 18 Apr 2002 08:56:02 -0000 Resent-Message-ID: <20020418085602.4360.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org, Joachim.Canisius@fujitsu-siemens.com, Erwin.Unruh@fujitsu-siemens.com, Heinrich.Brand@fujitsu-siemens.com Resent-Reply-To: gcc-gnats@gcc.gnu.org, Servatius.Brandt@fujitsu-siemens.com Received:(qmail 29687 invoked by uid 61); 18 Apr 2002 08:47:21 -0000 Message-Id:<20020418084720.29681.qmail@sources.redhat.com> Date: Thu, 18 Apr 2002 01:56:00 -0000 From: Servatius.Brandt@fujitsu-siemens.com Reply-To: Servatius.Brandt@fujitsu-siemens.com To: gcc-gnats@gcc.gnu.org Cc: Joachim.Canisius@fujitsu-siemens.com, Erwin.Unruh@fujitsu-siemens.com, Heinrich.Brand@fujitsu-siemens.com X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) X-GNATS-Notify:Joachim.Canisius@fujitsu-siemens.com, Erwin.Unruh@fujitsu-siemens.com, Heinrich.Brand@fujitsu-siemens.com Subject: c/6346: sign extension missing after cast down and up on long long bitfield X-SW-Source: 2002-04/txt/msg00915.txt.bz2 List-Id: >Number: 6346 >Category: c >Synopsis: sign extension missing after cast down and up on long long bitfield >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Apr 18 01:56:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Servatius.Brandt@fujitsu-siemens.com >Release: gcc-3.0.4 >Organization: >Environment: sparc-sun-solaris2.8 >Description: After converting the result of the |= operation on an unsigned long long bitfield down to a signed char or short, the conversion up to long long or unsigned long long forgets the sign extension. The problem is the same with and without optimization. >How-To-Repeat: gcc bug15.c && ./a.out Output is 256, 256, 65536, 65536, -1, -1, -1, -1. Correct output would be "-1" eigth times. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="bug15.c"; name="bug15.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bug15.c" c3RydWN0IEMgewogICAgdW5zaWduZWQgbG9uZyBsb25nIGYxIDogODsKICAgIHVuc2lnbmVkIGxv bmcgbG9uZyBjMSA6IDE2Owp9OwoKbWFpbigpCnsKICAgIHN0cnVjdCBDIHY7CiAgICB2LmMxID0g MDsKCiAgICAvKiBBZnRlciBjb252ZXJ0aW5nIHRoZSByZXN1bHQgb2YgdGhlIHw9IG9wZXJhdGlv biBvbiBhbiB1bnNpZ25lZCBsb25nIGxvbmcKICAgICAqIGJpdGZpZWxkIGRvd24gdG8gYSBzaWdu ZWQgY2hhciBvciBzaG9ydCwgdGhlIGNvbnZlcnNpb24gdXAgdG8gbG9uZyBsb25nCiAgICAgKiBv ciB1bnNpZ25lZCBsb25nIGxvbmcgZm9yZ2V0cyB0aGUgc2lnbiBleHRlbnNpb24uICovCiAgICBw cmludGYoIiVsbGRcbiIsICAgICAgICAgIChsb25nIGxvbmcpKHNpZ25lZCBjaGFyKSh2LmMxIHw9 IC0xTEwpKTsKICAgIHByaW50ZigiJWxsZFxuIiwgKHVuc2lnbmVkIGxvbmcgbG9uZykoc2lnbmVk IGNoYXIpKHYuYzEgfD0gLTFMTCkpOwogICAgcHJpbnRmKCIlbGxkXG4iLCAgICAgICAgICAobG9u ZyBsb25nKShzaG9ydCkgICAgICAodi5jMSB8PSAtMUxMKSk7CiAgICBwcmludGYoIiVsbGRcbiIs ICh1bnNpZ25lZCBsb25nIGxvbmcpKHNob3J0KSAgICAgICh2LmMxIHw9IC0xTEwpKTsKCiAgICAv KiBUaGlzIHdvcmtzIGNvcnJlY3RseS4gKi8KICAgIHByaW50ZigiJWxsZFxuIiwgICAgICAgICAg KGxvbmcgbG9uZykoc2lnbmVkIGNoYXIpKC0xTEwpKTsKICAgIHByaW50ZigiJWxsZFxuIiwgKHVu c2lnbmVkIGxvbmcgbG9uZykoc2lnbmVkIGNoYXIpKC0xTEwpKTsKICAgIHByaW50ZigiJWxsZFxu IiwgICAgICAgICAgKGxvbmcgbG9uZykoc2hvcnQpICAgICAgKC0xTEwpKTsKICAgIHByaW50Zigi JWxsZFxuIiwgKHVuc2lnbmVkIGxvbmcgbG9uZykoc2hvcnQpICAgICAgKC0xTEwpKTsKCiAgICAv KiBFeHBlY3RlZCByZXN1bHRzOiAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEuICovCiAg ICAvKiBPdXRwdXQgaXM6IDI1NSwgMjU1LCA2NTUzNSwgNjU1MzUsIC0xLCAtMSwgLTEsIC0xLiAq Lwp9Cg==