threads / patch / 48507

patchrefspec.h: reinstate 'extern' to fix sparse warning

Subject: [PATCH] refspec.h: reinstate 'extern' to fix sparse warning

## tl;dr

4 messages between May 16, 2018 and May 16, 2018. Diffs are folded; open one to read it.

replies: 3people: 4as markdown or json

Ramsay Jones· May 16, 2018, 21:35 UTC · lore
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
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').

Thanks!

ATB, Ramsay Jones

 refspec.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to refspec.h +1 −1
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· May 16, 2018, 21:42 UTC · re: Ramsay Jones · lore

Re: [PATCH] refspec.h: reinstate 'extern' to fix sparse warning

On 05/16, Ramsay Jones wrote:
Show 14 quoted lines
> 
> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
> ---
> 
> 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 :)

Show 24 quoted lines
> 
> 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
Stefan Beller· May 16, 2018, 21:47 UTC · re: Brandon Williams · lore

Re: [PATCH] refspec.h: reinstate 'extern' to fix sparse warning

On Wed, May 16, 2018 at 2:42 PM, Brandon Williams <bmwill@google.com> wrote:
Show 22 quoted lines
> On 05/16, Ramsay Jones wrote:
>>
>> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
>> ---
>>
>> 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.

Johannes Schindelin· May 16, 2018, 21:52 UTC · re: Stefan Beller · lore

Re: [PATCH] refspec.h: reinstate 'extern' to fix sparse warning

On Wed, 16 May 2018, Stefan Beller wrote:
Show 10 quoted lines
> On Wed, May 16, 2018 at 2:42 PM, Brandon Williams <bmwill@google.com> wrote:
>
> > 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...

← back to recent threads