abstptr.c: (in function main) abstptr.c:13:3: Assignment of abst * to void *: vp = ap abstptr.c:14:3: Assignment of abst * to int *: ip = ap2 abstptr.c:15:3: Assignment of int * to abst *: ap = ip abstptr.c:16:17: Cast from underlying abstract type abst *: (void *)ap abstptr.c:17:8: Dereference of null pointer ap: *ap abstptr.c:15:8: Storage ap becomes null abstptr.c:19:16: Cast from underlying abstract type abst *: (void *)&a abstptr.c:20:16: Cast to underlying abstract type abst *: (abst *)&b abstptr.c:21:3: Assignment of int * to abst *: ap = &b abstptr.c:22:3: Assignment of int to abst: *ap = b Finished checking --- 9 code warnings, as expected abstptr.c: (in function main) abstptr.c:14:3: Assignment of abst * to int *: ip = ap2 abstptr.c:15:3: Assignment of int * to abst *: ap = ip abstptr.c:17:8: Dereference of null pointer ap: *ap abstptr.c:15:8: Storage ap becomes null abstptr.c:20:16: Cast to underlying abstract type abst *: (abst *)&b abstptr.c:21:3: Assignment of int * to abst *: ap = &b abstptr.c:22:3: Assignment of int to abst: *ap = b Finished checking --- 6 code warnings, as expected