On 02.01.2025 20:55, Andrew Cooper wrote: > Clang, of at least verion 17 complains: > > arch/x86/pv/hypercall.c:30:10: error: variable 'eax' is used uninitialized > whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] > 30 | if ( !compat ) > | ^~~~~~~ > arch/x86/pv/hypercall.c:87:29: note: uninitialized use occurs here > 87 | perfc_incra(hypercalls, eax); > | ^~~ > > This function is forced always_inline to cause compat to be > constant-propagated through, but that is only a heuristic to try and get the > compiler to do what we want, not a gurantee that it does. > > Clang doesn't appear to be able to see that the only case where compat is > true (and therefore the if() is false) is when there's an else clause on the > end which sets eax too. > > Initialise eax to -1, which ought to be optimised out, but if for whatever > reason it happens not to be, then perfc_incra() will fail it's bounds check > and do nothing. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
Acked-by: Jan Beulich <jbeul...@suse.com>