[LLVMdev] Why "I = ++I" instead of "++I" in COFFDump.cpp ?

Richard legalize at xmission.com
Mon Apr 7 07:38:58 PDT 2014


Oops, meant to send this to the mailing list instead of to Reid
privately. (Why cc the mailing list instead of just sending to the
mailing list?)

In article <CACs=tyJ6zaHeiS0eNhBkdcZE--JY4k7yH9_P1yFbGqod6uymMw at mail.gmail.com>,
    Reid Kleckner <rnk at google.com> writes:

> Looks like a bug.  This can probably be simplified with C++11.
> 
> On Fri, Apr 4, 2014 at 10:39 AM, Robison, Arch <arch.robison at intel.com>wrote:
> 
> >   for (; I != E; I = ++I) {
> >       ...
> >   }
> >
> > Is there a reason for writing "I = ++I" instead of "++I" ?

I don't see how it's a bug because functionality isn't impacted by
this.  It's simply a redundant assignment.

I also don't see what C++11 has to do with this.

    i = i;

has always been legal since the very first implementation of C and has
always been a pointless expression.

Had the code been:

    i = i++;

then we would have had a real problem since i++ returns the old value
of i before it was incremented and the loop would be infinite.
-- 
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
     The Computer Graphics Museum <http://ComputerGraphicsMuseum.org>
         The Terminals Wiki <http://terminals.classiccmp.org>
  Legalize Adulthood! (my blog) <http://LegalizeAdulthood.wordpress.com>



More information about the llvm-dev mailing list