2018-02-26 14:42-0800, Matthias Kaehlcke:
> The type 'enum kvm_reg_ex' is an extension of 'enum kvm_reg', however
> the extension is only semantical and the compiler doesn't know about the
> relationship between the two types. In kvm_pdptr_read() a value of the
> extended type is passed to kvm_x86_ops->cache_reg(), which expects a
> value of the base type. Clang raises the following warning about the
> type mismatch:
Yeah, expressing this in C type system seems impossible.
> arch/x86/kvm/kvm_cache_regs.h:44:32: warning: implicit conversion from
> enumeration type 'enum kvm_reg_ex' to different enumeration type
> 'enum kvm_reg' [-Wenum-conversion]
> kvm_x86_ops->cache_reg(vcpu, VCPU_EXREG_PDPTR);
> Cast VCPU_EXREG_PDPTR to 'enum kvm_reg' to make the compiler happy.
> Signed-off-by: Matthias Kaehlcke <m...@chromium.org>