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

Richard legalize at xmission.com
Mon Apr 7 15:25:45 PDT 2014


In article <20140407190957.GA11923 at britannica.bec.de>,
    Joerg Sonnenberger <joerg at britannica.bec.de> writes:

> On Mon, Apr 07, 2014 at 08:38:58AM -0600, Richard wrote:
> > 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:
> > > > 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.
> 
> It is a bug as it violates the sequence point rule. One memory location
> shall not be modified twice.

Hrm.  Then it's really two bugs?

1) the code violates the sequence point rule.
2) gcc/clang/MSVC didn't complain when compiling this code

If you could point me to the appropriate section of the Nov.  2012 Draft
Standard where I could read about the sequence point rule, I would be very
appreciative as I would like to understand this better.

Thanks!
-- 
"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