subv0(void *p, int a)1 long subv0(void *p, int   a) { return p - ((void*)0); }
subvc(void *p, int a)2 long subvc(void *p, int   a) { return p - ((void*)8); }
subva(void *p, int a)3 long subva(void *p, int   a) { return p - ((void*)a); }
subvq(void *p, void *q)4 long subvq(void *p, void *q) { return p - q; }
5 
subi0(int *p, int a)6 long subi0(int  *p, int   a) { return p - ((int *)0); }
subic(int *p, int a)7 long subic(int  *p, int   a) { return p - ((int *)8); }
subia(int *p, int a)8 long subia(int  *p, int   a) { return p - ((int *)a); }
subiq(int *p, int *q)9 long subiq(int  *p, int  *q) { return p - q; }
10 
subvm3(void *p, int a)11 long subvm3(void *p, int   a) { return (p - ((void*)0)) * 3; }
subvx3(void *p, int a)12 long subvx3(void *p, int   a) { return (p - ((void*)0)) ^ 3; }
13 
14 /*
15  * check-name: pointer-sub
16  * check-command: sparsec -Wno-int-to-pointer-cast -Wno-decl -c $file -o tmp.o
17  */
18