On 01:03 Mon 19 May     , Wolfgang Denk wrote:
> In message <[EMAIL PROTECTED]> you wrote:
> >
> > > >  static inline void *memcpy(void *dst, const void *src, unsigned int 
> > > > len)
> > > >  {
> > > >         char *ret = dst;
> > > > +
> > > >         while (len-- > 0) {
> > > >                 *ret++ = *((char *)src);
> > > >                 src++;
> > > >         }
> > > > -       return (void *)ret;
> > > > +
> > > > +       return (void *)dst;
> > > 
> > > While technically correct, this is bogus. We have a variable ret, but
> > > we don't return it. And we have a variable dst, but we don't use it as
> > > destination pointer.
> > > 
> > > Please change the
> > >   *ret++ = *((char *)src);
> > > into
> > >   *dst++ = *((char *)src);
> > > and leave all the rest.
> > You can not do this because dst is a void
> 
> Why not? src is void, too.
gcc will claim about the cast.

we can do this
       void *ret = dst;
       char *d = dst;
       const char *s = src;

       while (len-- > 0)
               *d++ = *s++;

        return ret;

Best Regards,
J.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to