If we have some pre-rewriter code that does foo.bar = 0; where foo.bar is a function pointer, the rewritten code is foo.bar = (fn_struct)0;, where fn_struct is the rewritten function pointer struct type. This doesn't compile because we can't cast 0 to a struct.
The way I've manually fixed this before is to change it to foo.bar.ptr = 0, i.e. assign directly to the hidden ptr field, but this feels less than idea to me since (I think) we want to keep that inner ptr field hidden. We might have to come up with a better way to translate these statements.