--- 2006-04-21/xen/arch/x86/setup.c.0 2006-04-21 16:51:17.000000000 +0200 +++ 2006-04-21/xen/arch/x86/setup.c 2006-04-27 09:49:07.000000000 +0200 @@ -391,17 +391,17 @@ void __init __start_xen(multiboot_info_t total_pages = nr_pages; /* Sanity check for unwanted bloat of dom0_op structure. */ - BUG_ON(sizeof(((struct dom0_op *)0)->u) != - sizeof(((struct dom0_op *)0)->u.pad)); + BUILD_BUG_ON(sizeof(((struct dom0_op *)0)->u) != + sizeof(((struct dom0_op *)0)->u.pad)); - BUG_ON(sizeof(start_info_t) > PAGE_SIZE); - BUG_ON(sizeof(shared_info_t) > PAGE_SIZE); - BUG_ON(sizeof(vcpu_info_t) != 64); + BUILD_BUG_ON(sizeof(start_info_t) > PAGE_SIZE); + BUILD_BUG_ON(sizeof(shared_info_t) > PAGE_SIZE); + BUILD_BUG_ON(sizeof(vcpu_info_t) != 64); /* __foo are defined in public headers. Check they match internal defs. */ - BUG_ON(__HYPERVISOR_VIRT_START != HYPERVISOR_VIRT_START); + BUILD_BUG_ON(__HYPERVISOR_VIRT_START != HYPERVISOR_VIRT_START); #ifdef HYPERVISOR_VIRT_END - BUG_ON(__HYPERVISOR_VIRT_END != HYPERVISOR_VIRT_END); + BUILD_BUG_ON(__HYPERVISOR_VIRT_END != HYPERVISOR_VIRT_END); #endif init_frametable(); --- 2006-04-21/xen/include/xen/lib.h.0 2006-04-06 17:50:27.000000000 +0200 +++ 2006-04-21/xen/include/xen/lib.h 2006-04-27 09:24:50.000000000 +0200 @@ -16,6 +16,9 @@ #define BUG_ON(_p) do { if (_p) BUG(); } while ( 0 ) +/* Force a compilation error if condition is true */ +#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2 * !!(condition)])) + #ifndef NDEBUG #define ASSERT(_p) { if ( !(_p) ) { printk("Assertion '%s' failed, line %d, file %s\n", #_p , __LINE__, __FILE__); BUG(); } } #else