Compilation errors on Ubuntu 8.10 Intrepid Ibex
Maxim Dounin
mdounin at mdounin.ru
Tue Nov 11 02:48:14 MSK 2008
Hello!
On Tue, Nov 11, 2008 at 12:43:54AM +0300, Igor Sysoev wrote:
> On Tue, Nov 11, 2008 at 12:35:40AM +0300, Maxim Dounin wrote:
[...]
> > More details here:
> >
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509
> >
> > However I don't think it's a good idea to use stub variables.
> > Probably something like
> >
> > if (ngx_write_fd(...) == NGX_FILE_ERROR) {
> > /* void */
> > }
> >
> > would be better.
> >
> > Maxim Dounin
> >
> > p.s. Actually I think that it's glibc's bug. But we probably have
> > to live with it, at least for some time.
>
> I believe this is gcc bug because I explictly says that I do not need
> the function result using (void) case.
It can't be gcc bug - warn_unused_result was explicitly coded to
produce warning unavoidable by (void) cast. I agree that it's
a misfeature though.
Anyway, there are many handwaving about this at the url I posted
(and in other places as well). I don't think we want to repeat it
here. :)
> Dummy result checking as well as stub variable are security/reliabilty
> profanation.
With [dummy] result checking we have some good place where we can
write reason why we can't do anything with the result,
so it looks better for me than stub variable. Of course both
aren't ideal.
> The (void) cast should be compact way to do the same.
It should, but it isn't. The question now is how to live with it
with minimal impact on decent systems. Probably the best solution
would be just to omit -Werror on such systems.
Maxim Dounin
More information about the nginx
mailing list