[lkml]   [2000]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Patch to remove undefined C code

On 16 Oct 2000, Ben Pfaff wrote:

> Jonathan George <> writes:
> > This patch has many bogus corrections where new variables were created, but
> > the order of evaluation is already unambiguous.
> >
> > For example each comma separated clause in an expression is guaranteed to be
> > completely evaluated before the next comma separated clause Including
> > Assignments.
> No, that is not true in general. When the comma in question is
> the comma operator, it is true. But when the comma separates
> arguments to a function, it is not: the order of evaluation of
> function arguments is implementation dependent. See C89 section
> "Function calls":

No arguments here, but proposed fixes were remarkably ugly. Example:

tmp = *p++;
*q = f(tmp, *p++);
return p;

is equivalent to more idiomatic

*q = f(p[0], p[1]);
return p+2;

And example with copying the string up to the comma... Yuck. Legal C !=
decent C.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:45    [W:0.047 / U:1.604 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site