> > On 11/5/20 3:27 PM, Jan Hubicka wrote: > > > poly_int64 offset; > > > struct modref_parm_map parm_map; > > > + parm_map.parm_offset_known = false; > > > + parm_map.parm_offset = 0; > > > + > > > > I'm curious, can't we use a proper C++ class construction. > > The IPA pass is new and so we can make it more C++-ish? Similarly > > for all newly introduced structs in mod ref. > > We can't because our vec does not accept non-pods and this needs to be > GGC safe since it points to trees.
We could probably add construction of writes_errno even though in corret run it should be never used (in analysis we need to be able to reinitialize and during stream in we will always stream it in). What else do you think can be more ++-ish? The pass even has two templates :). diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c index b40f3da3ba2..e80f6de09f2 100644 --- a/gcc/ipa-modref.c +++ b/gcc/ipa-modref.c @@ -124,7 +124,7 @@ static GTY(()) fast_function_summary <modref_summary_lto *, va_gc> /* Summary for a single function which this pass produces. */ modref_summary::modref_summary () - : loads (NULL), stores (NULL) + : loads (NULL), stores (NULL), writes_errno (NULL) { }