From: Dragan Simic Date: Sun, 07 Apr 2024 05:10:27 GMT Subject: Re: Warning message in remote.c when compiling Message-ID: <0d8660bd28ea10d062a3bf71d5d66b8f@manjaro.org> In-Reply-To: <20240407013843.GE1085004@coredump.intra.peff.net> Hello Jeff, On 2024-04-07 03:38, Jeff King wrote: > On Sat, Apr 06, 2024 at 06:12:34PM +0200, Dragan Simic wrote: > >> Hello, >> >> On 2024-04-06 16:21, prpr 19xx wrote: >> > I get this warning message when compiling remote.c: >> > >> > ... >> > CC remote.o >> > remote.c:596: warning: 'remotes_remote_get' declared inline after being >> > called >> > remote.c:596: warning: previous declaration of 'remotes_remote_get' was >> > here >> > CC replace-object.o >> > ... >> >> Could you, please, provide more details about your environment, >> i.e. the operating system and compiler? > > I'm also curious about which compiler, but I think it's a reasonable > complaint. We forward-declare the static function, use it, and then > later declare it inline. I didn't check to see what the standard says, > but it seems like a funny thing to do in general. The link below seems to provide more details. The way I see it, declarations and definitions should match, and the standard seems to support that. Though, not all compilers (or not all versions) complain in this particular case. https://stackoverflow.com/a/62390378/22330192 > It has been that way for a while; since 56eed3422c (remote: remove > the_repository->remote_state from static methods, 2021-11-17), I think. > > I don't really see any need to mark the wrapper as inline. It's one > basic function call (on top of an interface which requires a callback > anyway!), and I suspect many compilers would consider inlining anyway, > since it's a static function. > > Ditto for remotes_pushremote_get(), though it doesn't have a forward > declaration. > > -Peff