https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55791

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org

--- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> ---
The detection does have to happen in the parser; after that, argument
expressions like 10 * sizeof (char*) may be folded into constants with no trace
of the original subexpressions.

Besides malloc (and realloc) the warning should also work for the two-argument
calloc as well as for user-defined allocation functions declared with attribute
alloc_size.  The design will also need to consider how to handle conditional
and binary expressions involving multiple sizeof expressions such as malloc(x ?
sizeof (A) : sizeof (B)) and malloc(sizeof (A) + sizeof (B)).  Both explicit
conversions (i.e., casts) and implicit conversions (e.g., when passing the
allocation result as an argument to a function) should be considered as well.

Reply via email to