threads / patch / 47562

patchoidset: don't return value from oidset_init

Subject: [PATCH] oidset: don't return value from oidset_init

## tl;dr

3 messages between Jan 7, 2018 and Jan 9, 2018. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Thomas Gummerer· Jan 7, 2018, 23:04 UTC · lore

c3a9ad3117 ("oidset: add iterator methods to oidset", 2017-11-21) introduced a 'oidset_init()' function in oidset.h, which has void as return type, but returns an expression.

This makes the solaris compiler fail with:
    "oidset.h", line 30: void function cannot return value

As the return type is void, and even the return type of the expression we're trying to return (oidmap_init) is void just remove the return statement to fix the compiler error.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
---
 oidset.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to oidset.h +1 −1
diff --git a/oidset.h b/oidset.h
index 783abceccd..40ec5f87fe 100644
--- a/oidset.h
+++ b/oidset.h
@@ -27,7 +27,7 @@ struct oidset {
 
 static inline void oidset_init(struct oidset *set, size_t initial_size)
 {
-	return oidmap_init(&set->map, initial_size);
+	oidmap_init(&set->map, initial_size);
 }
 
 /**
-- 
2.16.0.rc1.238.g530d649a79
Junio C Hamano· Jan 8, 2018, 23:26 UTC · re: Thomas Gummerer · lore

Re: [PATCH] oidset: don't return value from oidset_init

Thomas Gummerer <t.gummerer@gmail.com> writes:
Show 15 quoted lines
> c3a9ad3117 ("oidset: add iterator methods to oidset", 2017-11-21)
> introduced a 'oidset_init()' function in oidset.h, which has void as
> return type, but returns an expression.
> ...
> diff --git a/oidset.h b/oidset.h
> index 783abceccd..40ec5f87fe 100644
> --- a/oidset.h
> +++ b/oidset.h
> @@ -27,7 +27,7 @@ struct oidset {
>  
>  static inline void oidset_init(struct oidset *set, size_t initial_size)
>  {
> -	return oidmap_init(&set->map, initial_size);
> +	oidmap_init(&set->map, initial_size);
>  }

Makes sense. Perhaps "inline" hids this from error-checking compilers, I wonder?

Johannes Sixt· Jan 9, 2018, 07:33 UTC · re: Junio C Hamano · lore

Re: [PATCH] oidset: don't return value from oidset_init

Am 09.01.2018 um 00:26 schrieb Junio C Hamano:
Show 20 quoted lines
> Thomas Gummerer <t.gummerer@gmail.com> writes:
> 
>> c3a9ad3117 ("oidset: add iterator methods to oidset", 2017-11-21)
>> introduced a 'oidset_init()' function in oidset.h, which has void as
>> return type, but returns an expression.
>> ...
>> diff --git a/oidset.h b/oidset.h
>> index 783abceccd..40ec5f87fe 100644
>> --- a/oidset.h
>> +++ b/oidset.h
>> @@ -27,7 +27,7 @@ struct oidset {
>>   
>>   static inline void oidset_init(struct oidset *set, size_t initial_size)
>>   {
>> -	return oidmap_init(&set->map, initial_size);
>> +	oidmap_init(&set->map, initial_size);
>>   }
> 
> Makes sense.  Perhaps "inline" hids this from error-checking
> compilers, I wonder?

outmap_init returns void itself. It is a modern language feature, I guess, that this void "value" can be forwarded in a return statement.

-- Hannes

← back to recent threads