Remove 'strchr' warning from reiserfs
PATCH 1/1 Remove 'strchr' warning from reiserfs
Hi Linus, please apply - maintainer cc:ed for info.
Reiserfs emits a warning about strchr being defined but not used. I finally tracked down the reason for this.
gcc - when seeing strstr(x, "%") recognized that the second parameter is a char, and therefore uses strchr instead of strstr. The workaround to avoid the warning is to replace the call to strstr with strchr - which is OK.
This hides the warning, and brings us down to 6 warnings for a make defconfig bzImage.
Sam
===== fs/reiserfs/prints.c 1.21 vs edited =====
fs/reiserfs/prints.c +1 -1
@@ -164,7 +164,7 @@ *skip =0 ; -while ((k =strstr (k,"%" )) !=NULL ) +while ((k =strchr (k,'%' )) !=NULL ) {if (k[1 ] =='k' || k[1 ] =='K' || k[1 ] =='h' || k[1 ] =='t' || k[1 ] =='z' || k[1 ] =='b' || k[1 ] =='y' || k[1 ] =='a' ) {
Quoted 9 lines · On Sat, 17 May 2003 21:16:11 +0200 Sam Ravnborg <[email protected]> wrote:
Hi Linus, please apply - maintainer cc:ed for info.
Reiserfs emits a warning about strchr being defined but not used. I finally tracked down the reason for this.
gcc - when seeingstrstr(x, "%")recognized that the second parameter is a char, and therefore uses strchr instead of strstr. The workaround to avoid the warning is to replace the call to strstr with strchr - which is OK.
Quoted 4 lines
This hides the warning, and brings us down to 6 warnings for a make defconfig bzImage.
Sam
Good job finding this, several others have looked and never found what was causing it. Is this gcc behaviour documented anywhere? What other surprises are there?
Quoted 2 lines · Stephen Hemminger
Is this gcc behaviour documented anywhere?
I dropped a mail to gcc-bugs - the reply was:
=======
The kernel is a special case; GCC is entitled to assume the existence of standard C library functions.
=======
So when messing with standard functions we may expect a few suprises, which I think is fair enough.
Sam
An unnamed Administration source, Sam Ravnborg, wrote:
% On Mon, May 19, 2003 at 12:47:12PM -0700, Stephen Hemminger wrote:
% >
% > Is this gcc behaviour documented anywhere?
%
% I dropped a mail to gcc-bugs - the reply was:
%
% =======
% The kernel is a special case; GCC is entitled to assume the existence of % standard C library functions.
% =======
%
% So when messing with standard functions we may expect a few suprises, % which I think is fair enough.
Hmm. And -nostdlib (or -nodefaultlibs) doesn't catch it?
K
Signature · 2 lines
According to Kentucky state law, every person must take a bath at least once a year.