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

diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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=""
 
 # debug flags.
-WARN_FLAGS="-Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition -Wpointer-arith -Wundef -Wextra -Waddress -Warray-bounds -Wattributes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-optimizations -Wlogical-op -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector -Wstrict-aliasing -Wswitch -Wsync-nand -Wtrigraphs  -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-result -Wunused-value  -Wunused-variable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wmissing-declarations -Wmissing-parameter-type  -Wmissing-prototypes -Wnested-externs -Wstrict-prototypes -Wpointer-sign"
+WARN_FLAGS="-Wall -W -Wshadow -Wold-style-declaration -Wold-style-definition -Wpointer-arith -Wundef -Wextra -Waddress -Warray-bounds -Wattributes -Wbuiltin-macro-redefined -Wcast-align -Wchar-subscripts -Wclobbered -Wcomment -Wcoverage-mismatch -Wdeprecated -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wunsafe-loop-optimizations -Wlogical-op -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmudflap -Wmultichar -Wnonnull -Woverflow -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstrict-aliasing -Wswitch -Wsync-nand -Wtrigraphs  -Wtype-limits -Wundef -Wuninitialized -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-result -Wunused-value  -Wunused-variable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wmissing-declarations -Wmissing-parameter-type  -Wmissing-prototypes -Wnested-externs -Wstrict-prototypes -Wpointer-sign"
 HOST_CFLAGS="$HOST_CFLAGS $WARN_FLAGS"
 TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissing-prototypes"
 TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g"
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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.003762787 +0100
@@ -100,7 +100,10 @@
     {
       char sector[GRUB_DISK_SECTOR_SIZE];
 
-      pos -= GRUB_DISK_SECTOR_SIZE;
+      if (pos >= GRUB_DISK_SECTOR_SIZE)
+	pos -= GRUB_DISK_SECTOR_SIZE;
+      else
+	pos = 0;
 
       grub_file_seek (file, pos);
 
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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 = (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 = node->last_block_cache + 1; curblock <= target; curblock++)
+  for (curblock = node->last_block_cache + 1; curblock < target + 1; curblock++)
     {
       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*' -ur 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 = 0;
       grub_fs_t fs;
       char *path;
 
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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 +0100
@@ -660,7 +660,7 @@
 	    goto finish;
 
 	  sector += (1 << (disk->log_sector_size - GRUB_DISK_SECTOR_BITS));
-	  buf = (char *) buf + len;
+	  buf = (const char *) buf + len;
 	  size -= len;
 	  real_offset = 0;
 	}
@@ -678,7 +678,7 @@
 	  while (n--)
 	    grub_disk_cache_invalidate (disk->dev->id, disk->id, sector++);
 
-	  buf = (char *) buf + len;
+	  buf = (const char *) buf + len;
 	  size -= len;
 	}
     }
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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.495760624 +0100
@@ -1145,8 +1145,9 @@
   int lineno = 0;
   struct stat st;
 
-  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*' -ur 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 +0100
@@ -68,3 +68,24 @@
   if (! inactive)
     nitem->prio |= GRUB_PRIO_LIST_FLAG_ACTIVE;
 }
+
+void
+grub_list_push (grub_list_t *head, grub_list_t item)
+{
+  item->prev = head;
+  if (*head)
+    (*head)->prev = &item->next;
+  item->next = *head;
+  *head = item;
+}
+
+void
+grub_list_remove (grub_list_t item)
+{
+  if (item->prev)
+    *item->prev = item->next;
+  if (item->next)
+    item->next->prev = item->prev;
+  item->next = 0;
+  item->prev = 0;
+}
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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 +0100
@@ -70,13 +70,13 @@
 
   grub_memcpy (tmp, S, Slen);
 
-  for (i = 1; i <= l; i++)
+  for (i = 1; i - 1 < l; i++)
     {
       grub_memset (T, 0, hLen);
 
-      for (u = 1; u <= c; u++)
+      for (u = 0; u < c; u++)
 	{
-	  if (u == 1)
+	  if (u == 0)
 	    {
 	      tmp[Slen + 0] = (i & 0xff000000) >> 24;
 	      tmp[Slen + 1] = (i & 0x00ff0000) >> 16;
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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.000000000 +0100
+++ mainline-mod/grub-core/lib/xzembed/xz_dec_bcj.c	2012-02-21 21:10:05.895761645 +0100
@@ -168,7 +168,7 @@
 	size_t i;
 	uint32_t instr;
 
-	for (i = 0; i + 4 <= size; i += 4) {
+	for (i = 0; i + 3 < size; i += 4) {
 		instr = get_unaligned_be32(buf + i);
 		if ((instr & 0xFC000003) == 0x48000001) {
 			instr &= 0x03FFFFFC;
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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 = 0;
-  int routecnt = 0;
+  unsigned depth = 0;
+  unsigned routecnt = 0;
   struct grub_net_network_level_protocol *prot = NULL;
   grub_net_network_level_address_t curtarget = addr;
 
@@ -618,7 +618,7 @@
   FOR_NET_ROUTES(route)
     routecnt++;
 
-  for (depth = 0; depth < routecnt + 2; depth++)
+  for (depth = 0; depth < routecnt + 2 && depth != (unsigned) -1; depth++)
     {
       struct grub_net_route *bestroute = NULL;
       FOR_NET_ROUTES(route)
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur mainline/grub-core/normal/charset.c mainline-mod/grub-core/normal/charset.c
--- mainline/grub-core/normal/charset.c	2012-02-09 22:27:51.000000000 +0100
+++ 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 = 0; i <= (end - start) / 2; i++)
+    for (i = 0; i < (end - start) / 2 + 1; i++)
       {
 	t = visual[start + i];
 	visual[start + i] = visual[end - i];
@@ -665,7 +665,7 @@
 	  {
 	    unsigned j;	  
 	    /* FIXME: can be optimized.  */
-	    for (j = max_level; j >= min_odd_level; j--)
+	    for (j = max_level; j > min_odd_level - 1; j--)
 	      {
 		unsigned in = 0;
 		unsigned i;
@@ -734,7 +734,7 @@
 	  {
 	    int right_join = 0;
 	    signed i;
-	    for (i = k - 1; i >= (signed) line_start; i--)
+	    for (i = k - 1; i > (signed) line_start - 1; i--)
 	      {
 		enum grub_join_type join_type = 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*' -ur mainline/grub-core/normal/cmdline.c mainline-mod/grub-core/normal/cmdline.c
--- mainline/grub-core/normal/cmdline.c	2012-02-12 15:26:18.000000000 +0100
+++ 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 = hist_used - newsize;
+	  grub_ssize_t i;
+	  grub_ssize_t delsize = hist_used - newsize;
 	  hist_used = newsize;
 
-	  for (i = 1; i <= delsize; i++)
+	  for (i = 1; i < delsize + 1; i++)
 	    {
-	      int pos = hist_end - i;
+	      grub_ssize_t pos = hist_end - i;
 	      if (pos < 0)
 		pos += 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*' -ur 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;
 
-static inline void
-grub_list_push (grub_list_t *head, grub_list_t item)
-{
-  item->prev = head;
-  if (*head)
-    (*head)->prev = &item->next;
-  item->next = *head;
-  *head = item;
-}
-
-static inline void
-grub_list_remove (grub_list_t item)
-{
-  if (item->prev)
-    *item->prev = item->next;
-  if (item->next)
-    item->next->prev = item->prev;
-  item->next = 0;
-  item->prev = 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);
 
 #define FOR_LIST_ELEMENTS(var, list) for ((var) = (list); (var); (var) = (var)->next)
 
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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 @@
 
 library = {
   name = libgrubmods.a;
-  cflags = '$(CFLAGS_POSIX) -Wno-undef';
+  cflags = '$(CFLAGS_POSIX) -Wno-undef -Wno-error=logical-op -Wno-error=missing-noreturn';
   cppflags = '-I$(top_srcdir)/grub-core/lib/minilzo -I$(srcdir)/grub-core/lib/xzembed -DMINILZO_HAVE_CONFIG_H';
 
   common_nodist = grub_script.tab.c;
diff --exclude Makefile.util.am --exclude Makefile.in --exclude grub.info --exclude configure --exclude aclocal.m4 --exclude '*autom4te.cache*' -ur 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 }
   };
 
-static void
+static void __attribute__ ((noreturn))
 usage (int status)
 {
   if (status)
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to