Re: [PATCH] refspec.h: reinstate 'extern' to fix sparse warning
On Wed, 16 May 2018, Stefan Beller wrote: > On Wed, May 16, 2018 at 2:42 PM, Brandon Williamswrote: > > > Though now I'm confused, I thought we were going towards eliminating > > using the extern keyword? ...of course I guess it means something > > _slightly_ different when using with a variable vs a function :) > > We're only eliminating it when it is redundant. :-) > > For variables this is not redundant as we need it to tell apart the > declaration and definition of it, so we have to keep it. Otherwise we will end up with the variable *defined* for every file that includes that header. And of course those different versions of the same variable would have possibly different values...
Re: [PATCH] refspec.h: reinstate 'extern' to fix sparse warning
On Wed, May 16, 2018 at 2:42 PM, Brandon Williamswrote: > On 05/16, Ramsay Jones wrote: >> >> Signed-off-by: Ramsay Jones >> --- >> >> Hi Brandon, >> >> If you need to re-roll your 'bw/refspec-api' branch, could you please >> squash this, or the equivalent change before the 'struct refname' to >> 'struct refname_item' name change, into the relevant patch. (which >> would be patch #1, commit 8999381ed). >> >> This patch was built on top of 'pu', but as I said above, patch #1 >> is where the original 'extern' keyword was dropped. (see first hunk >> of the diff to 'remote.h'). > > Of course I'll do that, I'm planning on sending out a v2 by the end of > the day and I'll incorporate that. > > Though now I'm confused, I thought we were going towards eliminating > using the extern keyword? ...of course I guess it means something > _slightly_ different when using with a variable vs a function :) We're only eliminating it when it is redundant. :-) For variables this is not redundant as we need it to tell apart the declaration and definition of it, so we have to keep it.
Re: [PATCH] refspec.h: reinstate 'extern' to fix sparse warning
On 05/16, Ramsay Jones wrote: > > Signed-off-by: Ramsay Jones> --- > > Hi Brandon, > > If you need to re-roll your 'bw/refspec-api' branch, could you please > squash this, or the equivalent change before the 'struct refname' to > 'struct refname_item' name change, into the relevant patch. (which > would be patch #1, commit 8999381ed). > > This patch was built on top of 'pu', but as I said above, patch #1 > is where the original 'extern' keyword was dropped. (see first hunk > of the diff to 'remote.h'). Of course I'll do that, I'm planning on sending out a v2 by the end of the day and I'll incorporate that. Though now I'm confused, I thought we were going towards eliminating using the extern keyword? ...of course I guess it means something _slightly_ different when using with a variable vs a function :) > > Thanks! > > ATB, > Ramsay Jones > > refspec.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/refspec.h b/refspec.h > index 374f8ea63..7e1ff94ac 100644 > --- a/refspec.h > +++ b/refspec.h > @@ -2,7 +2,7 @@ > #define REFSPEC_H > > #define TAG_REFSPEC "refs/tags/*:refs/tags/*" > -const struct refspec_item *tag_refspec; > +extern const struct refspec_item *tag_refspec; > > struct refspec_item { > unsigned force : 1; > -- > 2.17.0 -- Brandon Williams