#!/bin/sh cat > /tmp/testcase.c << EOF #include #include struct rb_node { unsigned long __rb_parent_color; struct rb_node *rb_right; struct rb_node *rb_left; } __attribute__((aligned(sizeof(long)))); struct extent_status { struct rb_node rb_node; unsigned long es_lblk; /* first logical block extent covers */ unsigned long es_len; /* length of extent in block */ unsigned long long es_pblk : 62; /* first physical block */ unsigned long long es_status : 2; /* record the status of extent */ }; int main(int argc, char **argv) { struct extent_status es; es.es_status = 3; printf("%d\n", es.es_status); printf("size %u\n", sizeof(es)); } EOF echo "sparse /tmp/testcase.c" sparse /tmp/testcase.c echo " " echo "sparse -m32 /tmp/testcase.c" sparse -m32 /tmp/testcase.c echo " " echo "sparse -m64 /tmp/testcase.c" sparse -m64 /tmp/testcase.c