[cfe-commits] [patch] Warn on memset(p, 0, sizeof(p))

Hans Wennborg hans at chromium.org
Mon Jun 13 00:49:44 PDT 2011


Hi Nico,

On Mon, Jun 13, 2011 at 6:23 AM, Nico Weber <thakis at chromium.org> wrote:
> Hi,
>
> the attached patch produces this diagnostic
>
>  test.cpp:16:17: warning: The sizeof expression in 'memset' has type
> 'S *', the same type that the first argument has. The sizeof
> expression should probably have type 'S' instead.

Would it be possible to issue a fixit to insert a '*' in the right
place? I suppose it might not work very well with arrays though?

The code itself looks fine as far as I can tell.

>
> for this code:
>
>  struct S {};
>  S* ps;
>  memset(ps, 0, sizeof(ps));  // Should be sizeof(*ps)
>
> This is PR9977.
>
> Ok?
>
> I've built llvm, clang, and parts of chrome with this patch.
> llvm/clang build fine; in chrome I found at least one error with this
> already. (chrome doesn't build cleanly with ToT clang at the moment
> for other reasons, so I can't do a full evaluation at the moment.)
>
> Nico
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>




More information about the cfe-commits mailing list