compiler: check for notinheap struct at each struct field

When generating write barriers, we were only checking for a notinheap
struct at the outermost struct.  That mishandled the case of setting a
pointer to a notinheap struct as a field of another struct that is not
notinheap.  This caused an invalid write barrier error when building
the 1.13 version of the runtime.

Change-Id: Ib3ccb8d70fd46d81839372d6b43530994b4d2441
Reviewed-by: Cherry Zhang <>
1 file changed