]> git.baikalelectronics.ru Git - kernel.git/commit
reiserfs: fix warnings with gcc 4.4
authorJeff Mahoney <jeffm@jeffreymahoney.com>
Wed, 17 Jun 2009 23:26:29 +0000 (16:26 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 18 Jun 2009 20:03:46 +0000 (13:03 -0700)
commit1330f3e41d362c7d0649919135c33467785f7dfd
tree67859aad430ba6e83be86ad227b704d31e0a818e
parent0fc9445602c4c0e0566d91020f2cb7f549328b22
reiserfs: fix warnings with gcc 4.4

Several code paths in reiserfs have a construct like:

 if (is_direntry_le_ih(ih = B_N_PITEM_HEAD(src, item_num))) ...

which, in addition to being ugly, end up causing compiler warnings with
gcc 4.4.0.  Previous compilers didn't issue a warning.

fs/reiserfs/do_balan.c:1273: warning: operation on `aux_ih' may be undefined
fs/reiserfs/lbalance.c:393: warning: operation on `ih' may be undefined
fs/reiserfs/lbalance.c:421: warning: operation on `ih' may be undefined
fs/reiserfs/lbalance.c:777: warning: operation on `ih' may be undefined

I believe this is due to the ih being passed to macros which evaluate the
argument more than once.  This is old code and we haven't seen any
problems with it, but this patch eliminates the warnings.

It converts the multiple evaluation macros to static inlines and does a
preassignment for the cases that were causing the warnings because that
code is just ugly.

Reported-by: Chris Mason <mason@oracle.com>
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/reiserfs/do_balan.c
fs/reiserfs/lbalance.c
include/linux/reiserfs_fs.h