Skip to contentSkip to conversation

Remove 'strchr' warning from reiserfs

PATCH In review Sam Ravnborg 3 participants 4 messages May 17, 2003 – May 20, 2003

lore
Share & tools
lore
#0 lore raw

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' ) {
#1 lore raw
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 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.

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?

#2 lore raw
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

#3 lore raw

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.