Hello, I find that keeping code warning-free (wrt gcc -Wall -Wshadow) makes it easier to avoid certain classes of bugs.
Compiling with gcc -Wall -Wshadow evoked a few warnings on a Debian/unstable system. Here are patches to fix those: * libparted/exception.c (default_handler): Rename parameter "ex" to "e", to avoid shadowing file-scoped global. * libparted/fs/linux_swap/linux_swap.c (_generic_swap_probe): Add a "can't happen" (with current callers) "default: goto error" clause in a switch to avoid a may-be-used-uninitialized warning. (_generic_swap_clobber): Likewise. * libparted/fs/hfs/reloc_plus.c (hfsplus_pack_free_space_from_block): Rename local variable "div" to "divisor", to avoid shadowing the function in <stdlib.h>. * libparted/fs/hfs/reloc.c (hfs_pack_free_space_from_block): Likewise. * libparted/fs/hfs/cache.c (hfsc_cache_add_extent): Rename parameter "index" to "ref_index" to avoid shadowing the <string.h> function. * libparted/labels/sun.c (sun_partition_enumerate): Rename local variable "i" to "j", to avoid shadowing another local. Signed-off-by: Jim Meyering <[EMAIL PROTECTED]> --- libparted/exception.c | 14 +++++++------- libparted/fs/hfs/cache.c | 4 ++-- libparted/fs/hfs/reloc.c | 8 ++++---- libparted/fs/hfs/reloc_plus.c | 8 ++++---- libparted/fs/linux_swap/linux_swap.c | 12 +++++++++--- libparted/labels/sun.c | 6 +++--- 6 files changed, 29 insertions(+), 23 deletions(-) diff --git a/libparted/exception.c b/libparted/exception.c index 8b8b306..798e69c 100644 --- a/libparted/exception.c +++ b/libparted/exception.c @@ -1,6 +1,6 @@ /* libparted - a library for manipulating disk partitions - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -126,9 +126,9 @@ ped_exception_get_option_string (PedExceptionOption ex_opt) } static PedExceptionOption -default_handler (PedException* ex) +default_handler (PedException* e) { - if (ex->type == PED_EXCEPTION_BUG) + if (e->type == PED_EXCEPTION_BUG) fprintf (stderr, _("A bug has been detected in GNU Parted. " "Refer to the web site of parted " @@ -141,14 +141,14 @@ default_handler (PedException* ex) VERSION); else fprintf (stderr, "%s: ", - ped_exception_get_type_string (ex->type)); - fprintf (stderr, "%s\n", ex->message); + ped_exception_get_type_string (e->type)); + fprintf (stderr, "%s\n", e->message); - switch (ex->options) { + switch (e->options) { case PED_EXCEPTION_OK: case PED_EXCEPTION_CANCEL: case PED_EXCEPTION_IGNORE: - return ex->options; + return e->options; default: return PED_EXCEPTION_UNHANDLED; diff --git a/libparted/fs/hfs/cache.c b/libparted/fs/hfs/cache.c index 8e4339c..22c4a3c 100644 --- a/libparted/fs/hfs/cache.c +++ b/libparted/fs/hfs/cache.c @@ -119,7 +119,7 @@ hfsc_delete_cache(HfsCPrivateCache* cache) HfsCPrivateExtent* hfsc_cache_add_extent(HfsCPrivateCache* cache, uint32_t start, uint32_t length, uint32_t block, uint16_t offset, uint8_t sbb, - uint8_t where, uint8_t index) + uint8_t where, uint8_t ref_index) { HfsCPrivateExtent* ext; unsigned int idx = start >> CR_SHIFT; @@ -160,7 +160,7 @@ hfsc_cache_add_extent(HfsCPrivateCache* cache, uint32_t start, uint32_t length, ext->ref_offset = offset; ext->sect_by_block = sbb; ext->where = where; - ext->ref_index = index; + ext->ref_index = ref_index; ext->next = cache->linked_ref[idx]; cache->linked_ref[idx] = ext; diff --git a/libparted/fs/hfs/reloc.c b/libparted/fs/hfs/reloc.c index 1e70893..44bb82b 100644 --- a/libparted/fs/hfs/reloc.c +++ b/libparted/fs/hfs/reloc.c @@ -1,6 +1,6 @@ /* libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -593,8 +593,8 @@ hfs_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, HfsCPrivateCache* cache; unsigned int to_fblock = fblock; unsigned int start = fblock; - unsigned int div = PED_BE16_TO_CPU (mdb->total_blocks) - + 1 - start - to_free; + unsigned int divisor = PED_BE16_TO_CPU (mdb->total_blocks) + + 1 - start - to_free; int ret; PED_ASSERT (!hfs_block, return 0); @@ -654,7 +654,7 @@ hfs_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, fblock++; } - ped_timer_update(timer, (float)(to_fblock - start)/div); + ped_timer_update(timer, (float)(to_fblock - start)/divisor); } ped_free (hfs_block); hfs_block = NULL; hfs_block_count = 0; diff --git a/libparted/fs/hfs/reloc_plus.c b/libparted/fs/hfs/reloc_plus.c index 0a00253..6191e43 100644 --- a/libparted/fs/hfs/reloc_plus.c +++ b/libparted/fs/hfs/reloc_plus.c @@ -1,6 +1,6 @@ /* libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -866,8 +866,8 @@ hfsplus_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, HfsCPrivateCache* cache; unsigned int to_fblock = fblock; unsigned int start = fblock; - unsigned int div = PED_BE32_TO_CPU (vh->total_blocks) - + 1 - start - to_free; + unsigned int divisor = PED_BE32_TO_CPU (vh->total_blocks) + + 1 - start - to_free; int ret; PED_ASSERT (!hfsp_block, return 0); @@ -929,7 +929,7 @@ hfsplus_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, fblock++; } - ped_timer_update(timer, (float)(to_fblock - start) / div); + ped_timer_update(timer, (float)(to_fblock - start) / divisor); } ped_free (hfsp_block); hfsp_block = NULL; hfsp_block_count = 0; diff --git a/libparted/fs/linux_swap/linux_swap.c b/libparted/fs/linux_swap/linux_swap.c index d3faea6..d57db00 100644 --- a/libparted/fs/linux_swap/linux_swap.c +++ b/libparted/fs/linux_swap/linux_swap.c @@ -1,6 +1,6 @@ /* libparted - a library for manipulating disk partitions - Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -93,12 +93,15 @@ _generic_swap_probe (PedGeometry* geom, int kind) break; /* Check for new style swap partitions. */ case 1: - fs = _swap_v2_open(geom); + fs = _swap_v2_open(geom); break; /* Check for swap partitions containing swsusp data. */ case -1: fs = _swap_swsusp_open(geom); break; + + default: + goto error; /* Not reached */ } if (!fs) @@ -136,12 +139,15 @@ _generic_swap_clobber (PedGeometry* geom, int kind) break; /* Check for new style swap partitions. */ case 1: - fs = _swap_v2_open(geom); + fs = _swap_v2_open(geom); break; /* Check for swap partitions containing swsusp data. */ case -1: fs = _swap_swsusp_open(geom); break; + + default: + goto error; /* Not reached */ } if (!fs) diff --git a/libparted/labels/sun.c b/libparted/labels/sun.c index e5aa6fb..253f317 100644 --- a/libparted/labels/sun.c +++ b/libparted/labels/sun.c @@ -1,7 +1,7 @@ /* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2005, 2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -728,7 +728,7 @@ sun_partition_enumerate (PedPartition* part) /* Ok, now allocate the Whole disk if it isn't already */ p = ped_disk_get_partition (part->disk, WHOLE_DISK_PART + 1); if (!p) { - int i = ped_exception_throw ( + int j = ped_exception_throw ( PED_EXCEPTION_WARNING, PED_EXCEPTION_IGNORE_CANCEL, _("The Whole Disk partition is the only " @@ -737,7 +737,7 @@ sun_partition_enumerate (PedPartition* part) "a real one. Solaris may not be able to " "boot without it, and SILO (the sparc boot " "loader) appreciates it as well.")); - if (i == PED_EXCEPTION_IGNORE) { + if (j == PED_EXCEPTION_IGNORE) { /* bad bad bad...you will suffer your own fate */ part->num = WHOLE_DISK_PART + 1; return 1; -- 1.5.0.rc4.26.gcc46a-dirty _______________________________________________ bug-parted mailing list bug-parted@gnu.org http://lists.gnu.org/mailman/listinfo/bug-parted