[torquedev] pbm_mom segfault in TMomCheckJobChild

Garrick Staples garrick at usc.edu
Tue Dec 16 18:25:08 MST 2008


On Tue, Dec 16, 2008 at 07:18:24PM -0500, Glen Beane alleged:
> On Tue, Dec 16, 2008 at 7:17 PM, Glen Beane <glen.beane at gmail.com> wrote:
> > On Tue, Dec 16, 2008 at 3:06 PM, Joshua Bernstein
> > <jbernstein at penguincomputing.com> wrote:
> >
> >>
> >> if (i == -1)
> >>        if (errno == EINTR)
> >>           continue;
> >>
> >> The ordering is important.  Otherwise the compiler sees if (a && b)
> >> and is allowed to look at 'b' first to handle short-circuit evaluation.
> >
> > I would NEVER use such a brain dead compiler.  Compound Boolean
> > expressions are evaluated left to right.
> > if (ptr == NULL && ptr->foo == bar) is never going to access a null
> > pointer because a correct compiler is never going to do the ptr->foo
> > == bar test first.
> 
> i mean if (ptr != NULL && ptr->foo == bar)

According to the C faq (a reference that I deeply trust), these constructs are
perfectly legal.  The || and && operators (and the ?: and comma operators)
create sequence points between the operands and gaurantee the order of
evalution.

http://c-faq.com/expr/seqpointops.html
http://c-faq.com/expr/shortcircuit.html
http://c-faq.com/expr/seqpoints.html

-- 
Garrick Staples, GNU/Linux HPCC SysAdmin
University of Southern California

See the Dishonor Roll at http://www.californiansagainsthate.com/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.supercluster.org/pipermail/torquedev/attachments/20081216/b18f00d0/attachment.bin


More information about the torquedev mailing list