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