Just going on the number of places where *offset (or the variable it points to) is assigned, I see one place where it's set to size_zero_node and three places where it's set to bitsize_zero_node. Thanks for checking into this. I'm now testing this patch: If the testing goes fine, this is OK to commit.