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