[llvm-dev] clang-tidy false positives with common realloc/malloc sizeof pattern

ell1e via llvm-dev llvm-dev at lists.llvm.org
Tue Dec 8 00:11:06 PST 2020



451:        h64expression **new_arg_values = realloc(
452:            out_funcargs->arg_value,
453:            sizeof(*new_arg_values) * (out_funcargs->arg_count + 1)
454:        );
(line 453) Suspicious usage of 'sizeof(A*)'; pointer to aggregate


I have this clang-tidy false positive ALL OVER my code base, and it's
drowning the useful warnings. Also, I agree that sizeof(pointer) looks
suspicious in many cases, just not this one.

TYPE *target = realloc(..., sizeof(*target) ...)

is such a common pattern, even when TYPE happens to be a pointer type
itself, I don't think this should show up with that warning. Or is it
just me? Would love to see this improved one day.

I'm happy to be educated though why this code actually is bad/suspicious
for real. I just really don't see it, so the warning bugs me -
especially since if I actually misuse sizeof() now there is no way I
could actually spot the warning among all the uninteresting ones.

Regards,

ell1e


More information about the llvm-dev mailing list