On Fri, 2015-11-13 at 09:12 -0500, David Malcolm wrote:
[...snip...]

> > diff --git a/gcc/passes.c b/gcc/passes.c
> > index dd8d00a..e634c5c 100644
> > --- a/gcc/passes.c
> > +++ b/gcc/passes.c
> > @@ -81,6 +81,13 @@ opt_pass::clone ()
> >    internal_error ("pass %s does not support cloning", name);
> >  }
> >  
> > +void
> > +opt_pass::set_pass_param (unsigned int, bool)
> > +{
> > +  internal_error ("pass %s needs a set_pass_param implementation to handle 
> > the"
> > +             " extra argument in NEXT_PASS", name);
> > +}
> 
> Shouldn't this error message refer to NEXT_PASS_WITH_ARG?  (since
> set_pass_param only gets called when someone starts using
> NEXT_PASS_WITH_ARG in passes.def)

[...snip...]

> > diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
> > index 49e22a9..7b2571f 100644
> > --- a/gcc/tree-pass.h
> > +++ b/gcc/tree-pass.h
> > @@ -83,6 +83,7 @@ public:
> >  
> >       The default implementation prints an error message and aborts.  */
> >    virtual opt_pass *clone ();
> > +  virtual void set_pass_param (unsigned int, bool);
> 
> Is the patch missing the implementation of opt_pass::set_pass_param?  Do
> you see a linker error?
> 
> Maybe opt_pass::set_pass_param should have a comment/error explaining to
> the developer that they got here because they set NEXT_PASS_WITH_ARG and
> didn't implement how the arg gets stored.

Gah, -ENO_COFFEE; I now see it above (and indeed I commented on it).

Sorry for the noise.
Dave

Reply via email to