On 11/25/25 15:10, Daniel P. Berrangé via Devel wrote:
> On Tue, Nov 25, 2025 at 02:54:20PM +0100, Ján Tomko via Devel wrote:
>> On a Tuesday in 2025, Peter Krempa via Devel wrote:
>>> From: Peter Krempa <[email protected]>
>>>
>>> 'char *tmp' is assigned from calling 'strrchr' on a 'const char *'. New
>>> clang in fedora doesn't like it. Make 'tmp' const.
>>>
>>> Signed-off-by: Peter Krempa <[email protected]>
>>> ---
>>>
>>> https://gitlab.com/MichalPrivoznik/libvirt/-/jobs/12208300313
>>>
>>
>> I was hoping the link would show a fixed pipeline :)
> 
> I'm rather curious how clang decides to trigger that warning given
> the libc header file declares the return value non-const
> 
>   extern char *strchr (const char *__s, int __c)
>      __THROW __attribute_pure__ __nonnull ((1));
> 
> It seems like clang has special-cased strchr/strrchr to enforce
> the const return for const input.

Well, it also triggers in places like:

../src/rpc/virnetsshsession.c:223:18: error: assigning to 'char *' from 'const 
char *' discards qualifiers 
[-Werror,-Wincompatible-pointer-types-discards-qualifiers]
  223 |         if ((tmp = strrchr(askcred[i].prompt, ':')))
      |                  ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


And just to give you context around the line:

        if ((tmp = strrchr(askcred[i].prompt, ':')))
            *tmp = '\0';

So I'd rather this patch is NOT merged and CLang is fixed instead.

Michal

Reply via email to