Subject: Re: [PATCH] cocci: do not directly access the .d_type member in struct dirent

From: Junio C Hamano <[email-masked]>
Date: Wed, 18 Jun 2025 12:29:45 -0700

Collin Funk <[email-masked]> writes:

> Junio C Hamano <[email-masked]> writes:
>
>> In "struct dirent", the presence of the .d_type member should not be
>> assumed and the code should instead use DTYPE() macro, with possibly
>> a fallback check to determine the type of the file.
>>
>> Add a rule to catch direct access to the .d_type member and use
>> DTYPE() macro instead, except in the emulation code paths that work
>> on platforms that do have the member.  This is probably not sufficient
>> to notice the lack of necessary fallback code.
>>
>> Signed-off-by: Junio C Hamano <[email-masked]>
>
> This change looks good to me. Atleast it will catch code that fails to
> build on niche platforms, even if it cannot validate existing backup
> code.

I do not think it is necessarily a good idea to allow building a
binary that is known to silently misbehave, though.

> Reviewed-by: Collin Funk <[email-masked]>
>
> Your fix for the 'git diff --no-index' looks correct [1]. I'll build libcurl
> on an AIX machine I have access to in order to test (not an
> administrator on it).

I do not think you need libcurl if you only want to test the diff
--no-index change, but anyway, thanks.