Skip to content

SMG: Forbid HVE with 0 bitsize

Such writes seem only happening for objects of 0 bitsize, but I don't think such has-value edges have any use, anyway.

Examples:

// zero-size struct in test/programs/c_attributes/structs-and-unions/common/packed-struct-with-2-members/2-aligned-0-bit-char/PSW2M-with-2-aligned-0-bit-char-and-2-aligned-0-bit-char-common-safe.c
struct bare {
  unsigned char : 0 __attribute__((__aligned__(2)));
  unsigned char : 0 __attribute__((__aligned__(2)));
} __attribute__((__packed__)) v;

// zero-size array in ldv-benchmarks/linux-4.18-rc5-memsafety/Safes/drivers---char---virtio_console.i
static unsigned int rproc_serial_features[0] = {};

Merge request reports