More comments to come on [3/3], for now just a single comment below on this specific patch:
> diff --git a/gcc/cp/pph-streamer-in.c b/gcc/cp/pph-streamer-in.c > index 0bd4d64..b267833 100644 > --- a/gcc/cp/pph-streamer-in.c > +++ b/gcc/cp/pph-streamer-in.c > @@ -439,7 +439,10 @@ pph_in_cxx_binding_1 (pph_stream *stream) > if (marker == PPH_RECORD_END) > return NULL; > else if (pph_is_reference_marker (marker)) > - return (cxx_binding *) pph_cache_get (&stream->cache, image_ix, ix, > marker); > + { > + pph_cache *cache = pph_cache_select (stream, marker, image_ix); > + return (cxx_binding *) pph_cache_get (cache, ix); > + } Seems like you replaced the pph_cache_get one liners with these two-liners. Wouldn't a simple inline function be nicer for this? Gab