On Fri, May 18, 2018 at 11:52 PM Eric Botcazou <ebotca...@adacore.com> wrote:
> > + /* If the next declaration is a PARM_DECL pointing to theDECL, > > + we need to adjust its VALUE_EXPR directly, since chains of > > + VALUE_EXPRs run afoul of garbage collection. This occurs > > + in Ada for Out parameters that aren't copied in. */ > > + if (next > > + && TREE_CODE (next) == PARM_DECL > > + && DECL_HAS_VALUE_EXPR_P (next) > > + && DECL_VALUE_EXPR (next) == decl) > > + SET_DECL_VALUE_EXPR (next, x); > > > > maybe you can explain the GC issue a bit. > It's the issue with GCed tables pointing to each other (which one is marked > first?) applied to the VALUE_EXPR table. Not clear it's worth verifying since > it's marginal, but I guess it's cheap enough to do in decl_value_expr_insert. Yeah, I guess it's cheap enough and we might have this issue lurking somewhere... Richard. > -- > Eric Botcazou