From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4547 invoked by alias); 15 Mar 2017 16:59:38 -0000 Mailing-List: contact newlib-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-owner@sourceware.org Received: (qmail 4536 invoked by uid 89); 15 Mar 2017 16:59:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=H*r:ip*192.168.2.2, cid, Hx-languages-length:1462, H*i:sk:5069a72 X-HELO: OARmail.OARCORP.com Received: from oarmail.oarcorp.com (HELO OARmail.OARCORP.com) (67.63.146.244) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 15 Mar 2017 16:59:36 +0000 Received: from [192.168.1.175] (192.168.1.175) by OARmail.OARCORP.com (192.168.2.2) with Microsoft SMTP Server (TLS) id 8.3.389.2; Wed, 15 Mar 2017 11:59:36 -0500 Subject: Re: Dead Code To: Craig Howland , "newlib@sourceware.org" References: <047903e6-8161-3c01-0208-13123f36196f@oarcorp.com> <5069a724-fac2-a2a7-a7e6-4b249a3f4aaa@LGSInnovations.com> From: Joel Sherrill Message-ID: Date: Wed, 15 Mar 2017 16:59:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <5069a724-fac2-a2a7-a7e6-4b249a3f4aaa@LGSInnovations.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2017/txt/msg00172.txt.bz2 On 3/15/2017 11:51 AM, Craig Howland wrote: > On 03/15/2017 11:48 AM, Joel Sherrill wrote: >> Hi >> >> I think Coverity spotted a case where an || should be an && >> in libc/string/strsignal.c. What does everyone else think? >> >> 74#if defined(SIGRTMIN) && defined(SIGRTMAX) >> cond_at_most: Condition signal >= 27, taking false branch. Now the >> value of signal is at most 26. >> at_most: At condition signal <= 31, the value of signal must be at most >> 26. >> dead_error_condition: The condition signal <= 31 must be true. >> 75 if ((signal >= SIGRTMIN) || (signal <= SIGRTMAX)) { >> 76 siprintf (buffer, "Real-time signal %d", signal - SIGRTMIN); >> 77 return buffer; >> 78 } >> 79#endif >> 80 >> >> CID 175333 (#1 of 1): Logically dead code (DEADCODE) >> dead_error_line: Execution cannot reach this statement: switch (signal) { >> >> case 1:.... >> >> --joel > I agree. (Very easy to test, for that matter.) I was thinking the same thing about a test and was writing one while waiting for some feedback. Based on this output, it is definitely broken!! === Normal Signals signal=SIGHUP => Real-time signal -26 signal=SIGINT => Real-time signal -25 signal=SIGQUIT => Real-time signal -24 signal=SIGILL => Real-time signal -23 It also looks like I wrote this code so I should take my lashings with a wet noodle. :) Patch coming shortly. Thanks for the review. I hope you will join in and take a look at some of them. --joel > Craig >