Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752396AbcLJFXb (ORCPT ); Sat, 10 Dec 2016 00:23:31 -0500 Received: from mail-yw0-f171.google.com ([209.85.161.171]:36384 "EHLO mail-yw0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751359AbcLJFXa (ORCPT ); Sat, 10 Dec 2016 00:23:30 -0500 MIME-Version: 1.0 In-Reply-To: References: <20161130184822.GA15376@mwanda> From: Stephane Eranian Date: Fri, 9 Dec 2016 21:23:28 -0800 Message-ID: Subject: Re: [bug report] perf jit: add source line info support To: Dan Carpenter Cc: Alexander Shishkin , LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1626 Lines: 42 On Fri, Dec 9, 2016 at 9:16 PM, Stephane Eranian wrote: > Hi Dan, > > On Wed, Nov 30, 2016 at 10:48 AM, Dan Carpenter > wrote: >> Hello Stephane Eranian, >> >> The patch 598b7c6919c7: "perf jit: add source line info support" from >> Nov 30, 2015, leads to the following static checker warning: >> >> ./tools/perf/util/genelf_debug.c:211 emit_signed_LEB128() >> warn: potential left shift more than type allows '57' >> >> ./tools/perf/util/genelf_debug.c >> 202 static void emit_signed_LEB128(struct buffer_ext *be, long data) >> 203 { >> 204 int more = 1; >> 205 int negative = data < 0; >> 206 int size = sizeof(long) * CHAR_BIT; >> 207 while (more) { >> 208 ubyte cur = data & 0x7F; >> 209 data >>= 7; >> 210 if (negative) >> 211 data |= - (1 << (size - 7)); >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> This is a no-op on 64 bit systems. I suspect it's not intentional? >> > I suspect size should be: size = sizeof(int) * CHAR_BIT; > I will test that. Sorry, I think the issue is on the 1 shift, should be 1UL instead. > >> 212 if ((data == 0 && !(cur & 0x40)) || >> 213 (data == -1l && (cur & 0x40))) >> 214 more = 0; >> 215 else >> 216 cur |= 0x80; >> 217 buffer_ext_add(be, &cur, 1); >> 218 } >> 219 } >> >> regards, >> dan carpenter