Re: [PATCH -mm] sys_semctl gcc 4.1 warning fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 10, 2006 at 11:24:31AM -0400, Steven Rostedt wrote:
> 
> On Wed, 10 May 2006, Daniel Walker wrote:
> 
> > On Wed, 2006-05-10 at 16:09 +0100, Alan Cox wrote:
> > > On Mer, 2006-05-10 at 07:31 -0700, Daniel Walker wrote:
> > > > > Hiding warnings like this can be a hazard as it will hide real warnings
> > > > > later on.
> > > >
> > > > How could it hide real warnings? If anything these patch allow other
> > > > (real warnings) to be seen .
> > >
> > > Because while the warning is present people will check it now and again.
> >
> > But it's pointless to review it, in this case and for this warning .
> >
> > > If you set the variable to zero then you generate extra code and you
> > > ensure nobody will look in future.
> >
> > The extra code is a problem , I'll admit that . But the warning should
> > disappear , it's just a waste .
> >
> 
> What is really needed is an attribute to add to function parameters, that
> tells gcc that the parameter, if a pointer, will be initialize via the
> function.
> 
> For example:
> 
> #define __assigned  __attribute__((initialized))
> 
> then declare a function:
> 
> int my_init_variabl(__assigned struct mystruct *var);
> 
> So gcc can know that the passed in variable will be updated. It could
> then check to see if the function actually does initialize the pointer,
> if the declaration is visible to the function definition itself.
> 
> Any gcc developers watching :)


It seems you don't understand the problem at all:


First of all note that your example does not apply in this case:

copy_semid_from_user() does _not_ initialize sembuf in all cases.


And you do not understand where gcc's problem is:

gcc does in fact see that setbuf is always initialized if 
copy_semid_from_user() returns 0.

setbuf is only initialized in the (cmd == IPC_SET) case and later only 
used in the (cmd == IPC_SET) case. And cmd can't change between the two 
occurences.

Therefore, gcc should in theory already have enough information to prove 
that sembuf is always initialized before it's used.


> -- Steve


cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux