Current-Users archive

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

Re: Build failure of current 6.99

On Fri, May 04, 2012 at 06:33:18PM +0200, Riccardo Mottola wrote:
> On 05/04/12 17:40, Joerg Sonnenberger wrote:
> >On Fri, May 04, 2012 at 05:02:58PM +0200, Riccardo Mottola wrote:
> >>Hi, perhaps using -Werror is a bit excessive?
> >Are you setting custom flags? Because there is a -02 (as in zero) in
> >there... Also, -ffast-math is going to break strtod and other things.
> >
> >Joerg
>  I fixed the wrong optim. flag and removed fastmath, but the 
> warning&error persists:

-finline-functions is probably also pointless.
There are code-bloat / cache occupancy / working set size
that mean that excessive function inlining isn't alays a gain.

In this case, _citrus_lookup_simple() contains:
        ret = _citrus_lookup_seq_open(&cl, name, ignore_case);
        if (ret) return NULL;

You are forcing _citrus_lookup_seq_open() be inlined, it starts:
        cl = malloc(sizeof(*cl));
        if (cl == NULL)
                return errno;

The compiler now pairs the two together, however it doesn't
know (and can't know in general) that when malloc() returns NULL
that errno is non-zero.
This means it doesn't know that _citrus_lookup_seq_open() returns
when malloc() fails.

That code really can't make it's mind up whether to return
pointers or errno values.


David Laight:

Home | Main Index | Thread Index | Old Index