From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1RzwKz-0000RD-2G for mharc-grub-devel@gnu.org; Tue, 21 Feb 2012 15:29:25 -0500 Received: from eggs.gnu.org ([140.186.70.92]:52746) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RzwKt-0000R7-Bx for grub-devel@gnu.org; Tue, 21 Feb 2012 15:29:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RzwKo-000074-HI for grub-devel@gnu.org; Tue, 21 Feb 2012 15:29:19 -0500 Received: from mail-ee0-f41.google.com ([74.125.83.41]:35650) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RzwKo-00006t-65 for grub-devel@gnu.org; Tue, 21 Feb 2012 15:29:14 -0500 Received: by eekc13 with SMTP id c13so2969089eek.0 for ; Tue, 21 Feb 2012 12:29:13 -0800 (PST) Received-SPF: pass (google.com: domain of phcoder@gmail.com designates 10.14.119.202 as permitted sender) client-ip=10.14.119.202; Authentication-Results: mr.google.com; spf=pass (google.com: domain of phcoder@gmail.com designates 10.14.119.202 as permitted sender) smtp.mail=phcoder@gmail.com; dkim=pass header.i=phcoder@gmail.com Received: from mr.google.com ([10.14.119.202]) by 10.14.119.202 with SMTP id n50mr13889122eeh.120.1329856153343 (num_hops = 1); Tue, 21 Feb 2012 12:29:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; bh=IsemSDPBMZWc70iwCQDFYz+Tg6JPak6ka2D9zWr2ixo=; b=Vpm69rjQkXi3kZ1wAuD0EcdkXGJ0lfiWeo2OBDy9GQBxvqLrLKqgTZ9L5UAbwaFhar U4p3qVlnA/y/PwuB4x0dg7K7NcixoOmsHLQddSTa3fd2nTGg9HzuDNIscgm/L8BcImKa iCZ9836Vhr5ck0T0hDa+kd+3L9vqLpGMXIy6E= Received: by 10.14.119.202 with SMTP id n50mr11088443eeh.120.1329856153277; Tue, 21 Feb 2012 12:29:13 -0800 (PST) Received: from debian.x201.phnet (85-234.197-178.cust.bluewin.ch. [178.197.234.85]) by mx.google.com with ESMTPS id c16sm93934739eei.1.2012.02.21.12.29.10 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 21 Feb 2012 12:29:12 -0800 (PST) Message-ID: <4F43FE94.3040401@gmail.com> Date: Tue, 21 Feb 2012 21:29:08 +0100 From: =?UTF-8?B?VmxhZGltaXIgJ8+GLWNvZGVyL3BoY29kZXInIFNlcmJpbmVua28=?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20120216 Icedove/8.0 MIME-Version: 1.0 To: The development of GNU GRUB Subject: Re: Lists and aliasing (Re: Freeze on 27 February) References: <4F43C25C.2040106@gmail.com> <20120221161943.GI27742@caffeine.csclub.uwaterloo.ca> <4F43CFD0.3010703@gmail.com> <20120221184627.GK27742@caffeine.csclub.uwaterloo.ca> <20120221195838.GA24235@caffeine.csclub.uwaterloo.ca> In-Reply-To: <20120221195838.GA24235@caffeine.csclub.uwaterloo.ca> Content-Type: multipart/mixed; boundary="------------050305010600020007020308" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 74.125.83.41 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 20:29:24 -0000 This is a multi-part message in MIME format. --------------050305010600020007020308 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 21.02.2012 20:58, Lennart Sorensen wrote: > On Tue, Feb 21, 2012 at 01:46:27PM -0500, Lennart Sorensen wrote: >> That actually seems to have done it. I am still trying to wrap my head >> around why that made a difference since it appears to be identical code >> moved somewhere else. It isn't inlined anymore, but should that make >> a big difference? >> >> Only 509 warnings left (down from 5000 or so). > Using gcc 4.6 drops that to 199 warnings, so gcc 4.4 is a bit more whiny > than 4.6. > -- Regards Vladimir 'φ-coder/phcoder' Serbinenko --------------050305010600020007020308 Content-Type: text/x-diff; name="warn.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="warn.diff" diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/configure.ac mainline-mod/configure.ac --- mainline/configure.ac 2012-02-21 14:29:15.000000000 +0100 +++ mainline-mod/configure.ac 2012-02-21 20:18:57.327763779 +0100 @@ -377,7 +377,7 @@ LIBS=3D"" =20 # debug flags. -WARN_FLAGS=3D"-Wall -W -Wshadow -Wold-style-declaration -Wold-style-defi= nition -Wpointer-arith -Wundef -Wextra -Waddress -Warray-bounds -Wattribu= tes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered = -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations -Wdi= sabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equ= al -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y= 2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimpl= icit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-op= timizations -Wlogical-op -Wmain -Wmissing-braces -Wmissing-field-initiali= zers -Wmissing-format-attribute -Wmissing-noreturn -Wmudflap -Wmultichar = -Wnonnull -Woverflow -Wpacked-bitfield-compat -Wparentheses -Wpointer-ari= th -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-c= ompare -Wstack-protector -Wstrict-aliasing -Wswitch -Wsync-nand -Wtrigrap= hs -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wunreachable= -code -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunus= ed-result -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-= register-var -Wwrite-strings -Wmissing-declarations -Wmissing-parameter-t= ype -Wmissing-prototypes -Wnested-externs -Wstrict-prototypes -Wpointer-= sign" +WARN_FLAGS=3D"-Wall -W -Wshadow -Wold-style-declaration -Wold-style-defi= nition -Wpointer-arith -Wundef -Wextra -Waddress -Warray-bounds -Wattribu= tes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered = -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations -Wdi= sabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equ= al -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y= 2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimpl= icit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-op= timizations -Wlogical-op -Wmain -Wmissing-braces -Wmissing-field-initiali= zers -Wmissing-format-attribute -Wmissing-noreturn -Wmudflap -Wmultichar = -Wnonnull -Woverflow -Wpacked-bitfield-compat -Wparentheses -Wpointer-ari= th -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-c= ompare -Wstrict-aliasing -Wswitch -Wsync-nand -Wtrigraphs -Wtype-limits = -Wundef -Wuninitialized -Wunknown-pragmas -Wunused -Wunused-function -Wun= used-label -Wunused-parameter -Wunused-result -Wunused-value -Wunused-va= riable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wmissin= g-declarations -Wmissing-parameter-type -Wmissing-prototypes -Wnested-ex= terns -Wstrict-prototypes -Wpointer-sign" HOST_CFLAGS=3D"$HOST_CFLAGS $WARN_FLAGS" TARGET_CFLAGS=3D"$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissi= ng-prototypes" TARGET_CCASFLAGS=3D"$TARGET_CCASFLAGS -g" diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/commands/testload.c mainline-mod/grub-core/commands/= testload.c --- mainline/grub-core/commands/testload.c 2012-02-08 00:13:14.000000000 = +0100 +++ mainline-mod/grub-core/commands/testload.c 2012-02-21 20:57:08.003762= 787 +0100 @@ -100,7 +100,10 @@ { char sector[GRUB_DISK_SECTOR_SIZE]; =20 - pos -=3D GRUB_DISK_SECTOR_SIZE; + if (pos >=3D GRUB_DISK_SECTOR_SIZE) + pos -=3D GRUB_DISK_SECTOR_SIZE; + else + pos =3D 0; =20 grub_file_seek (file, pos); =20 diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/fs/affs.c mainline-mod/grub-core/fs/affs.c --- mainline/grub-core/fs/affs.c 2012-01-29 18:28:10.000000000 +0100 +++ mainline-mod/grub-core/fs/affs.c 2012-02-21 21:05:56.271763053 +0100 @@ -143,7 +143,7 @@ mod =3D (grub_uint32_t) fileblock % data->htsize; /* Find the block that points to the fileblock we are looking up by following the chain until the right table is reached. */ - for (curblock =3D node->last_block_cache + 1; curblock <=3D target; cu= rblock++) + for (curblock =3D node->last_block_cache + 1; curblock < target + 1; c= urblock++) { grub_disk_read (data->disk, node->block_cache[curblock - 1] + data->blocksize - 1, diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/kern/corecmd.c mainline-mod/grub-core/kern/corecmd.c= --- mainline/grub-core/kern/corecmd.c 2012-02-12 15:26:18.000000000 +0100= +++ mainline-mod/grub-core/kern/corecmd.c 2012-02-21 20:50:07.351761943 += 0100 @@ -128,7 +128,7 @@ else { char *device_name; - grub_device_t dev; + grub_device_t dev =3D 0; grub_fs_t fs; char *path; =20 diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/kern/disk.c mainline-mod/grub-core/kern/disk.c --- mainline/grub-core/kern/disk.c 2012-02-11 18:19:04.000000000 +0100 +++ mainline-mod/grub-core/kern/disk.c 2012-02-21 19:22:18.931756689 +010= 0 @@ -660,7 +660,7 @@ goto finish; =20 sector +=3D (1 << (disk->log_sector_size - GRUB_DISK_SECTOR_BITS)); - buf =3D (char *) buf + len; + buf =3D (const char *) buf + len; size -=3D len; real_offset =3D 0; } @@ -678,7 +678,7 @@ while (n--) grub_disk_cache_invalidate (disk->dev->id, disk->id, sector++); =20 - buf =3D (char *) buf + len; + buf =3D (const char *) buf + len; size -=3D len; } } diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/kern/emu/hostdisk.c mainline-mod/grub-core/kern/emu/= hostdisk.c --- mainline/grub-core/kern/emu/hostdisk.c 2012-02-10 00:25:33.000000000 = +0100 +++ mainline-mod/grub-core/kern/emu/hostdisk.c 2012-02-21 19:49:41.495760= 624 +0100 @@ -1145,8 +1145,9 @@ int lineno =3D 0; struct stat st; =20 - auto void show_error (const char *msg); - void show_error (const char *msg) + auto void show_error (const char *msg) + __attribute__ ((noreturn)); + void __attribute__ ((noreturn)) show_error (const char *msg) { grub_util_error ("%s:%d: %s", dev_map, lineno, msg); } diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/kern/list.c mainline-mod/grub-core/kern/list.c --- mainline/grub-core/kern/list.c 2012-01-24 13:19:05.000000000 +0100 +++ mainline-mod/grub-core/kern/list.c 2012-02-21 20:13:45.891763027 +010= 0 @@ -68,3 +68,24 @@ if (! inactive) nitem->prio |=3D GRUB_PRIO_LIST_FLAG_ACTIVE; } + +void +grub_list_push (grub_list_t *head, grub_list_t item) +{ + item->prev =3D head; + if (*head) + (*head)->prev =3D &item->next; + item->next =3D *head; + *head =3D item; +} + +void +grub_list_remove (grub_list_t item) +{ + if (item->prev) + *item->prev =3D item->next; + if (item->next) + item->next->prev =3D item->prev; + item->next =3D 0; + item->prev =3D 0; +} diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/lib/pbkdf2.c mainline-mod/grub-core/lib/pbkdf2.c --- mainline/grub-core/lib/pbkdf2.c 2012-02-09 15:13:25.000000000 +0100 +++ mainline-mod/grub-core/lib/pbkdf2.c 2012-02-21 21:00:08.475756929 +01= 00 @@ -70,13 +70,13 @@ =20 grub_memcpy (tmp, S, Slen); =20 - for (i =3D 1; i <=3D l; i++) + for (i =3D 1; i - 1 < l; i++) { grub_memset (T, 0, hLen); =20 - for (u =3D 1; u <=3D c; u++) + for (u =3D 0; u < c; u++) { - if (u =3D=3D 1) + if (u =3D=3D 0) { tmp[Slen + 0] =3D (i & 0xff000000) >> 24; tmp[Slen + 1] =3D (i & 0x00ff0000) >> 16; diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/lib/xzembed/xz_dec_bcj.c mainline-mod/grub-core/lib/= xzembed/xz_dec_bcj.c --- mainline/grub-core/lib/xzembed/xz_dec_bcj.c 2010-12-01 15:45:43.00000= 0000 +0100 +++ mainline-mod/grub-core/lib/xzembed/xz_dec_bcj.c 2012-02-21 21:10:05.8= 95761645 +0100 @@ -168,7 +168,7 @@ size_t i; uint32_t instr; =20 - for (i =3D 0; i + 4 <=3D size; i +=3D 4) { + for (i =3D 0; i + 3 < size; i +=3D 4) { instr =3D get_unaligned_be32(buf + i); if ((instr & 0xFC000003) =3D=3D 0x48000001) { instr &=3D 0x03FFFFFC; diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/net/net.c mainline-mod/grub-core/net/net.c --- mainline/grub-core/net/net.c 2012-02-21 16:15:54.000000000 +0100 +++ mainline-mod/grub-core/net/net.c 2012-02-21 20:54:22.291756835 +0100 @@ -608,8 +608,8 @@ struct grub_net_network_level_interface **interf) { struct grub_net_route *route; - int depth =3D 0; - int routecnt =3D 0; + unsigned depth =3D 0; + unsigned routecnt =3D 0; struct grub_net_network_level_protocol *prot =3D NULL; grub_net_network_level_address_t curtarget =3D addr; =20 @@ -618,7 +618,7 @@ FOR_NET_ROUTES(route) routecnt++; =20 - for (depth =3D 0; depth < routecnt + 2; depth++) + for (depth =3D 0; depth < routecnt + 2 && depth !=3D (unsigned) -1; de= pth++) { struct grub_net_route *bestroute =3D NULL; FOR_NET_ROUTES(route) diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/normal/charset.c mainline-mod/grub-core/normal/chars= et.c --- mainline/grub-core/normal/charset.c 2012-02-09 22:27:51.000000000 +01= 00 +++ mainline-mod/grub-core/normal/charset.c 2012-02-21 21:04:33.019756480= +0100 @@ -608,7 +608,7 @@ { struct grub_unicode_glyph t; unsigned i, tl; - for (i =3D 0; i <=3D (end - start) / 2; i++) + for (i =3D 0; i < (end - start) / 2 + 1; i++) { t =3D visual[start + i]; visual[start + i] =3D visual[end - i]; @@ -665,7 +665,7 @@ { unsigned j; =20 /* FIXME: can be optimized. */ - for (j =3D max_level; j >=3D min_odd_level; j--) + for (j =3D max_level; j > min_odd_level - 1; j--) { unsigned in =3D 0; unsigned i; @@ -734,7 +734,7 @@ { int right_join =3D 0; signed i; - for (i =3D k - 1; i >=3D (signed) line_start; i--) + for (i =3D k - 1; i > (signed) line_start - 1; i--) { enum grub_join_type join_type =3D get_join_type (visual[i].base); if (!(visual[i].attributes diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/grub-core/normal/cmdline.c mainline-mod/grub-core/normal/cmdli= ne.c --- mainline/grub-core/normal/cmdline.c 2012-02-12 15:26:18.000000000 +01= 00 +++ mainline-mod/grub-core/normal/cmdline.c 2012-02-21 21:09:16.035762789= +0100 @@ -49,13 +49,13 @@ /* Remove the lines that don't fit in the new buffer. */ if (newsize < hist_used) { - int i; - int delsize =3D hist_used - newsize; + grub_ssize_t i; + grub_ssize_t delsize =3D hist_used - newsize; hist_used =3D newsize; =20 - for (i =3D 1; i <=3D delsize; i++) + for (i =3D 1; i < delsize + 1; i++) { - int pos =3D hist_end - i; + grub_ssize_t pos =3D hist_end - i; if (pos < 0) pos +=3D hist_size; grub_free (old_hist_lines[pos]); diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/include/grub/list.h mainline-mod/include/grub/list.h --- mainline/include/grub/list.h 2012-02-21 16:15:01.000000000 +0100 +++ mainline-mod/include/grub/list.h 2012-02-21 20:13:45.891763027 +0100 @@ -31,26 +31,8 @@ }; typedef struct grub_list *grub_list_t; =20 -static inline void -grub_list_push (grub_list_t *head, grub_list_t item) -{ - item->prev =3D head; - if (*head) - (*head)->prev =3D &item->next; - item->next =3D *head; - *head =3D item; -} - -static inline void -grub_list_remove (grub_list_t item) -{ - if (item->prev) - *item->prev =3D item->next; - if (item->next) - item->next->prev =3D item->prev; - item->next =3D 0; - item->prev =3D 0; -} +void EXPORT_FUNC(grub_list_push) (grub_list_t *head, grub_list_t item); +void EXPORT_FUNC(grub_list_remove) (grub_list_t item); =20 #define FOR_LIST_ELEMENTS(var, list) for ((var) =3D (list); (var); (var)= =3D (var)->next) =20 diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/Makefile.util.def mainline-mod/Makefile.util.def --- mainline/Makefile.util.def 2012-02-21 18:52:37.000000000 +0100 +++ mainline-mod/Makefile.util.def 2012-02-21 20:29:09.323764500 +0100 @@ -36,7 +36,7 @@ =20 library =3D { name =3D libgrubmods.a; - cflags =3D '$(CFLAGS_POSIX) -Wno-undef'; + cflags =3D '$(CFLAGS_POSIX) -Wno-undef -Wno-error=3Dlogical-op -Wno-er= ror=3Dmissing-noreturn'; cppflags =3D '-I$(top_srcdir)/grub-core/lib/minilzo -I$(srcdir)/grub-c= ore/lib/xzembed -DMINILZO_HAVE_CONFIG_H'; =20 common_nodist =3D grub_script.tab.c; diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info= --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -u= r mainline/util/bin2h.c mainline-mod/util/bin2h.c --- mainline/util/bin2h.c 2011-07-05 23:04:16.000000000 +0200 +++ mainline-mod/util/bin2h.c 2012-02-21 20:42:18.695761246 +0100 @@ -31,7 +31,7 @@ {0, 0, 0, 0 } }; =20 -static void +static void __attribute__ ((noreturn)) usage (int status) { if (status) --------------050305010600020007020308--