[PATCH 4/8] BFD: Add BFD pointer member to `struct carsym'

Jan Beulich jbeulich@suse.com
Fri Oct 24 14:28:33 GMT 2025


On 24.10.2025 15:37, Maciej W. Rozycki wrote:
> On Mon, 20 Oct 2025, Jan Beulich wrote:
> 
>>>>> +.{* Holds a file position or bfd* depending on context.  *}
>>>>> +.typedef union file_ptr_or_bfd
>>>>> +.{
>>>>> +.  file_ptr file_offset;
>>>>> +.  bfd *abfd;
>>>>> +.}
>>>>> +.file_ptr_or_bfd;
>>>>
>>>> The comment is too little for my taste, I'm afraid. How would one know which
>>>> of the two it is, merely seeing an instance of this type?
>>>
>>>  It's up to the user of this data structure to decide, just as the comment 
>>> says.  Can you please elaborate what kind of description you'd like to see 
>>> here?
>>
>> Hard to make a suggestion without knowing what, in at least an example
>> case, the approach to distinguish is. To take an abstract example: There
>> may be callback functions which want to take either kind of context data.
>> There it would be clear that the "scope" is strictly that between the
>> site setting up the data and the callback function. Since here you embed
>> the new type in another struct, it's less (if at all) clear.
> 
>  Please let's not invent hypothetical use cases.  This is a generic data 
> type and it doesn't set the usage policy.  It's up to the code writer to 
> use this data type in a reasonable manner and you can't figure out which 
> of the two members to use from the data type alone.  It's not uncommon for 
> code to use such data types.  The comment is as accurate as it can be in 
> my opinion.
> 
>  I guess I could rewrite the comment to say:
> 
> "Holds an archive member reference via a file position or bfd* depending 
> on context."
> 
> but it wouldn't fulfil your criteria and would dictate usage unecessarily, 
> so I'm skeptical as to such an "improvement".
> 
>  FWIW one use case of this data type is coming with 7/8, where the member 
> to use is determined by bfd_ardata (abfd)->symdef_use_bfd.  Another use 
> case will come with the second part of this effort.

Before replying to the above, I then will want to have actually looked at
patch 7.

Jan

>  Actually I have realised this data entity gratuitously uses a signed data 
> type for the file offset while in similar places we have an unsigned one, 
> so I'll respin with this change preceded by one taking care of signedness. 
> It might make sense to do a larger cleanup in this area, for example I've 
> identified places where ufile_ptr data is assigned to by strtol/strtoll 
> rather than strtoul/strtoull, but I won't do this on this occasion.
> 
>  Thank you for your input anyway.
> 
>   Maciej
> 



More information about the Binutils mailing list