diff mbox

KVM: x86: remove ignored type attribute

Message ID 20170623044120.6296-1-nick.desaulniers@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Nick Desaulniers June 23, 2017, 4:41 a.m. UTC
The macro insn_fetch marks the 'type' argument as having a specified
alignment.  Type attributes can only be applied to structs, unions, or
enums, but insn_fetch is only ever invoked with integral types, so Clang
produces 19 -Wignored-attributes warnings for this source file.

Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
---
 arch/x86/kvm/emulate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Paolo Bonzini June 27, 2017, 2:31 p.m. UTC | #1
On 23/06/2017 06:41, Nick Desaulniers wrote:
> The macro insn_fetch marks the 'type' argument as having a specified
> alignment.  Type attributes can only be applied to structs, unions, or
> enums, but insn_fetch is only ever invoked with integral types, so Clang
> produces 19 -Wignored-attributes warnings for this source file.
> 
> Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
> ---
>  arch/x86/kvm/emulate.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
> index 7611c034bf95..409081977e59 100644
> --- a/arch/x86/kvm/emulate.c
> +++ b/arch/x86/kvm/emulate.c
> @@ -900,7 +900,7 @@ static __always_inline int do_insn_fetch_bytes(struct x86_emulate_ctxt *ctxt,
>  	if (rc != X86EMUL_CONTINUE)					\
>  		goto done;						\
>  	ctxt->_eip += sizeof(_type);					\
> -	_x = *(_type __aligned(1) *) ctxt->fetch.ptr;			\
> +	_x = *(_type *) ctxt->fetch.ptr;			\
>  	ctxt->fetch.ptr += sizeof(_type);				\
>  	_x;								\
>  })
> 

Can you make a patch that uses memcpy instead?  Both GCC and clang will
compile it to a simple load.

Paolo
diff mbox

Patch

diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
index 7611c034bf95..409081977e59 100644
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -900,7 +900,7 @@  static __always_inline int do_insn_fetch_bytes(struct x86_emulate_ctxt *ctxt,
 	if (rc != X86EMUL_CONTINUE)					\
 		goto done;						\
 	ctxt->_eip += sizeof(_type);					\
-	_x = *(_type __aligned(1) *) ctxt->fetch.ptr;			\
+	_x = *(_type *) ctxt->fetch.ptr;			\
 	ctxt->fetch.ptr += sizeof(_type);				\
 	_x;								\
 })