From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21348 invoked by alias); 24 Jul 2003 18:54:47 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 21287 invoked by alias); 24 Jul 2003 18:54:45 -0000 Date: Thu, 24 Jul 2003 18:54:00 -0000 Message-ID: <20030724185445.21284.qmail@sources.redhat.com> From: "jashepherd at usa dot net" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20030724173442.11663.jashepherd@usa.net> References: <20030724173442.11663.jashepherd@usa.net> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c/11663] gcc ignores the cast and emits a warning X-Bugzilla-Reason: CC X-SW-Source: 2003-07/txt/msg02913.txt.bz2 List-Id: PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11663 ------- Additional Comments From jashepherd at usa dot net 2003-07-24 18:54 ------- Subject: Re: gcc ignores the cast and emits a warning A cast to (short) has to assume the constraints of the cast datatype not the original data type. The result of the entire if test if ((short)trans_ind >= 0 && (short)trans_ind <= 3) can never be 'always true' regardless of whether the datatype is char, unsigned char or short. only in the case where the test is if ( trans_ind >= 0 ) would the warning be valid. At 2003-07-24 18:14 +0000, you wrote: >PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org. > >http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11663 > > >pinskia at physics dot uc dot edu changed: > > What |Removed |Added >---------------------------------------------------------------------------- > Status|UNCONFIRMED |RESOLVED > Keywords| |diagnostic > Resolution| |INVALID > Summary|gcc ignores the cast and |gcc ignores the cast and > |emits a warning |emits a warning > Target Milestone|3.4 |--- > > >------- Additional Comments From pinskia at physics dot uc dot >edu 2003-07-24 18:14 ------- >The warning is correct because converting unsigned char to short will >always be positive >or zero. GCC is keeping the range information for trans_ind, if you want >to convert >unsigned char to signed short with trans_ind > 127 being negative add a >cast to signed >char first. > > > >------- You are receiving this mail because: ------- >You reported the bug, or are watching the reporter.