From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760055AbXGJWlQ (ORCPT ); Tue, 10 Jul 2007 18:41:16 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754764AbXGJWlA (ORCPT ); Tue, 10 Jul 2007 18:41:00 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:36348 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754102AbXGJWlA (ORCPT ); Tue, 10 Jul 2007 18:41:00 -0400 Date: Tue, 10 Jul 2007 23:40:59 +0100 From: Al Viro To: Alexey Dobriyan Cc: Adel Gadllah , linux-kernel@vger.kernel.org Subject: Re: [PATCH] fix sparse problems with ARRAY_SIZE Message-ID: <20070710224059.GS21668@ftp.linux.org.uk> References: <4693AE32.7030403@gmail.com> <4693AF4C.8010005@gmail.com> <20070710194033.GB5751@martell.zuzino.mipt.ru> <20070710205817.GR21668@ftp.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070710205817.GR21668@ftp.linux.org.uk> User-Agent: Mutt/1.4.1i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 10, 2007 at 09:58:18PM +0100, Al Viro wrote: > On Tue, Jul 10, 2007 at 11:40:33PM +0400, Alexey Dobriyan wrote: > > On Tue, Jul 10, 2007 at 06:09:48PM +0200, Adel Gadllah wrote: > > > --- linux-2.6.orig/include/linux/kernel.h > > > +++ linux-2.6/include/linux/kernel.h > > > @@ -35,7 +35,11 @@ extern const char linux_proc_banner[]; > > > #define ALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1) > > > #define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask)) > > > > > > +#ifdef __CHECKER_ > > > +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) > > > +#else > > > #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) > > > +#endif > > > > Al Viro recently gave a hint that he have patches for sparse to not give > > spurious ARRAY_SIZE warnings. > > I do. Right now it's either 2 or 4 patches away from mainline sparse, > depending on reordering... I'm splitting the last patch in series, > hopefully will reorder and send tonight. > > Basically, it's a matter of getting __builtin_compatible_types_p() > implementation (really - evaluate.c:type_difference()) somewhere sane. Try git://git.kernel.org/pub/scm/linux/kernel/git/viro/sparse.git/, the branch is type_difference