On Wed, Mar 15, 2023 at 08:10:26PM +0100, Michal Privoznik wrote:
We ran into so many clang bugs recently, that I'm strongly in
favor of
making it optional and aim on gcc only. Debugging these issues burns our
time needlessly.
[...]
After these patches, there is still one qemuxml2argvtest case failing,
and it's simply because no matter how hard I try, I can't stop clang
from optimizing the function.
[...]
At this point, I think we can call clang broken and focus our time on
developing libvirt. Not coming up with hacks around broken compilers.
clang is the default compiler for FreeBSD and macOS, both of which
are officially supported platforms. Unless we are willing to change
that, ignoring clang is simply out of the question.
I've only looked at your patches very briefly and I'm trying to wrap
something else up before the end of the week, so unfortunately I'm
unlikely to be able to do a proper review within a reasonable
timeframe. Plus IIUC even with these patches applied we'd still have
at least one failing test case, so they're not a complete solution.
So, in the interest of returning the CI to green as soon as possible,
I would recommend reverting 95ae91fdd4da quickly. We can then worry
about improving the situation compared to the (admittedly poor)
status quo as a follow-up, once that urgency is gone.
A thought about VIR_OPTNONE. It seems to me that we'd want to apply
this to all the functions that currently are marked with G_NO_INLINE
for mocking purposes. So, wouldn't it make sense to instead have a
single VIR_MOCKABLE annotation that combines the two, and use that
everywhere?
--
Andrea Bolognani / Red Hat / Virtualization