From: SZEDER Gábor Date: Mon, 20 Jul 2026 09:52:16 GMT Subject: Re: [PATCH v7 2/4] read-cache: pass 'repo' to 'ce_mode_from_stat()' Message-ID: In-Reply-To: <8b9528b8-198b-489f-8f0e-fbd0c7d07b64@malon.dev> On Mon, Jul 20, 2026 at 05:13:17PM +0800, Tian Yuchen wrote: > On 7/19/26 03:02, SZEDER Gábor wrote: > > On Fri, Jul 17, 2026 at 02:35:57PM +0800, Tian Yuchen wrote: > > > diff --git a/read-cache.h b/read-cache.h > > > index 043da1f1aa..94b8d3e547 100644 > > > --- a/read-cache.h > > > +++ b/read-cache.h > > > @@ -4,15 +4,24 @@ > > > #include "read-cache-ll.h" > > > #include "object.h" > > > #include "pathspec.h" > > > +#include "environment.h" > > > -static inline unsigned int ce_mode_from_stat(const struct cache_entry *ce, > > > +/* > > > + * Determine the appropriate index mode for a file based on its stat() > > > + * information and the existing cache entry (if any). > > > + * > > > + * This function handles degradation for filesystems that lack > > > + * symlink support or reliable executable bits. > > > + */ > > > +static inline unsigned int ce_mode_from_stat(struct repository *repo, > > > > This new parameter is not yet used in this function, which causes > > compilation errors in all source files which include "read-cache.h" > > when trying to build this commit using DEVELOPER=1, e.g.: > > I think the new parameter should be marked as UNUSED in this patch, > > and then the UNUSED should be dropped in the next, where you start > > using the parameter. > > > > > + const struct cache_entry *ce, > > > unsigned int mode) > > > { > > > extern int trust_executable_bit, has_symlinks; > > > - if (!has_symlinks && S_ISREG(mode) && > > > + if (S_ISREG(mode) && !has_symlinks && > > > ce && S_ISLNK(ce->ce_mode)) > > > return ce->ce_mode; > > > - if (!trust_executable_bit && S_ISREG(mode)) { > > > + if (S_ISREG(mode) && !trust_executable_bit) { > > > if (ce && S_ISREG(ce->ce_mode)) > > > return ce->ce_mode; > > > return create_ce_mode(0666); > > > -- > > > 2.43.0 > > > > > But 'USUSED' cannot be used here since the corresponding header > (git-compat-util.h, or more specifically compat/posix.h) is not included. UNUSED _can_ be used here, because: - This is a header file, so it's not supposed to be compiled on its own. - All C source files including this header file must start with including "git-compat-util.h", so by the time they include "read-cache.h", the UNUSED macro is already defined.