struct/union attributes placement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In 2.6.19-rc6-mm2, kvm places struct attributes between
"struct" and the struct name (in drivers/kvm/kvm_main.c):

void fx_init(struct kvm_vcpu *vcpu)
{
	struct __attribute__ ((__packed__)) fx_image_s {
		u16 control; //fcw
		u16 status; //fsw
		u16 tag; // ftw
		u16 opcode; //fop
		u64 ip; // fpu ip
		u64 operand;// fpu dp
		u32 mxcsr;
		u32 mxcsr_mask;

	} *fx_image;

This is legal gcc according to
http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Type-Attributes.html#Type-Attributes

but sparse complains about it (and following usage statements):

drivers/kvm/kvm_main.c:473:9: error: Trying to use reserved word '__attribute__' as identifier
drivers/kvm/kvm_main.c:473:38: error: Expected ; at end of declaration
drivers/kvm/kvm_main.c:473:38: error: got fx_image_s
drivers/kvm/kvm_main.c:485:14: error: Expected ) in function declarator
drivers/kvm/kvm_main.c:485:14: error: got ->
drivers/kvm/kvm_main.c:487:14: error: Expected ) in function declarator
drivers/kvm/kvm_main.c:487:14: error: got ->
drivers/kvm/kvm_main.c:488:17: error: Expected ) in function declarator
drivers/kvm/kvm_main.c:488:17: error: got ->
drivers/kvm/kvm_main.c:491:10: error: Expected ; at end of declaration
drivers/kvm/kvm_main.c:491:10: error: got ->
drivers/kvm/kvm_main.c:492:13: error: Expected ) in function declarator
drivers/kvm/kvm_main.c:492:13: error: got ->
drivers/kvm/kvm_main.c:494:1: error: Expected ; end of type declaration
drivers/kvm/kvm_main.c:494:1: error: got }
drivers/kvm/kvm_main.c:490:2: error: symbol 'fx_image' redeclared with different type (originally declared at drivers/kvm/kvm_main.c:483) - different base types
drivers/kvm/kvm_main.c:491:2: error: symbol 'fx_image' redeclared with different type (originally declared at drivers/kvm/kvm_main.c:483) - different base types

---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux