ell1e via llvm-dev
2020-Dec-08 08:11 UTC
[llvm-dev] clang-tidy false positives with common realloc/malloc sizeof pattern
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
ell1e via llvm-dev
2020-Dec-08 08:13 UTC
[llvm-dev] clang-tidy false positives with common realloc/malloc sizeof pattern
oops, just realizing this probably should go to llvm-bugs@ or similar, my bad. Should I resend it to over there? I apologize for the noise On 12/8/20 9:11 AM, ell1e wrote:> > > 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 >