hw/i386/intel_iommu.c:902: wrong logical operator ? /home/dcb/qemu/trunk/qemu/hw/i386/intel_iommu.c:902:5: error: logical ‘and’ applied to non-boolean constant [-Werror=logical-op] pvtd_as = s->address_spaces[VTD_SID_TO_BUS(source_id)]; ^ $ fgrep VTD_SID_TO_BUS `find . -name \*.h -print` ./include/hw/i386/intel_iommu.h:#define VTD_SID_TO_BUS(sid) (((sid) >> 8) && 0xff) $ Sounds to me like #define VTD_SID_TO_BUS(sid) (((sid) >> 8) & 0xff) would be better.