Re: [PATCH] kernel: Fix ftrace.c compiler warning when callingftrace_nop_replace()

From: John Kacur
Date: Mon May 23 2011 - 16:01:39 EST


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.


On Mon, 23 May 2011, Steven Rostedt wrote:

> On Sun, 2011-05-22 at 18:36 -0700, H. Peter Anvin wrote:
> > On 05/22/2011 06:19 PM, Eduardo Silva wrote:
> > > the function ftrace_nop_replace() returns a 'static const unsigned char *'
> > > value, so when the caller perform a direct assignment to a
> > > 'static unsigned char *', the compiler raise the following warning message:
> > >
> > > ftrace.c:308:6: warning: assignment discards qualifiers from pointer target type
> > > ftrace.c:318:6: warning: assignment discards qualifiers from pointer target type
> > >
> > > Adding the proper casts the message goes away.
> > >
> > > Signed-off-by: Eduardo Silva <edsiper@xxxxxxxxx>
> >
> > This quiets a warning of something that potentially looks like a real
> > bug. Perhaps "new" should be const?
>
> Although there is no real bug here, I hate these "hide the warning"
> patches.
>
> The real solution is to change all the users into const *. This should
> be doable as the new and old pointers are not modified.
>
> And remember:
>
> char *changes;
> const char *no_changes;
>
> no_changes = changes; /* is OK! (no compiler warnings) */
>
> changes = no_changes; /* is not OK. (compiler will warn). */
>
> -- Steve

The following needs some testing, just compile tested for now.