This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Coping with gcc warning due to limitation of gcc analysis?


Hello,

We have a warning in sysdeps/mach/hurd/getresgid.c:

../sysdeps/mach/hurd/getresgid.c:57:9: warning: 'saved' may be used uninitialized in this function

Basically the structure of the function is the following:

int
__getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)
{
  gid_t saved;
  ...

  err = foo ();
  if (!err)
    {
      if (bar)
	err = EBAR;
      else
	{
	  saved = bat;
	}
    }

  if (err)
    return err;

  *sgid = saved;  /* The warning is triggered here */
  ...
}

i.e. in all the cases where `saved' is not initialized, err is set to
non-zero, and thus we return before ever using saved.

What is the glibc-preferred way to deal with this? Of course I could
just initialize saved to a dumb value like -1 but the reader might
wonder why unless we put a blunt comment, and a smarter compiler might
later warn "-1 set in `saved' is never used"...

Samuel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]