On Mon, Nov 5, 2012 at 12:50 PM, Wolfgang Denk <w...@denx.de> wrote: > Dear Pavel, > > In message <20121105200340.GA15821@xo-6d-61-c0.localdomain> you wrote: > > > > > > > /* Append length in bits and transform */ > > > > > - ctx->in32[14] = ctx->bits[0]; > > > > > - ctx->in32[15] = ctx->bits[1]; > > > > > + memcpy(ctx->in + 14 * sizeof(__u32), ctx->bits, 2 * > sizeof(__u32)); > > > > > > > > This makes the code actually unreadable. Please add at least a > > > > comment what this is doing. > > > > > > Actually I think this shoul dbe split into two memcpy commands, using > > > the addresses of the respective array elements directly, without such > > > manual pointer arithmetics. > > > > I guess bigger question is: why does gcc miscompile that, and is it > > guaranteed that it will not miscompile the memcpy? > > I did not see Simon mentioning anythin about incorrect compilation. > My understanding was that it's just the usual "dereferencing > type-punned pointer" warnings issue. >
Yup, it's a compilation warning. issue. (but warnings being treated as errors.) > > > Simon, what was the actual problem this was supposed to fix? > > Best regards, > > Wolfgang Denk > > -- > DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de > Let's say the docs present a simplified view of reality... :-) > - Larry Wall in <6...@jpl-devvax.jpl.nasa.gov> > -- Han Shen | Software Engineer | shen...@google.com | +1-650-440-3330
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot