On Thu, Nov 03, 2011 at 10:21:54AM -0600, Jeff Law wrote: > Well, if we're going to go that direction, I'd just say define > VEC_BASE to (&(P)->base) for non-checking rather than mess with the > NONNULL variant. Is there some reason why we don't do that?
Because the VEC_BASE macro is also used for the macros where we allow P to be NULL. Is (&(p)->base) valid for: VEC (tree, heap) *p = NULL; don't you need a non-NULL pointer to do that? For non-ENABLE_CHECKING perhaps we could just cast P to the right type, though we'd lose some compile time checking that way. Jakub