On Wed, 2024-10-30 at 10:02 -0400, David Malcolm wrote:
> On Wed, 2024-10-30 at 12:22 +0000, Jonathan Wakely wrote:
> > On 29/10/24 19:19 -0400, David Malcolm wrote:
> > > This patch generalizes diagnostic_context so that rather than
> > > having
> > > a single output format, it has a vector of zero or more.
> > 
> > [snip]
> > 
> > > +/* Class for parsing the arguments of -fdiagnostics-add-output=
> > > and
> > > +   -fdiagnostics-set-output=, and making
> > > diagnostic_output_format
> > > +   instances (or issuing errors).  */
> > > +
> > > +class output_factory
> > > +{
> > > +public:
> > > +  class handler
> > > +  {
> > > +  public:
> > > +    handler (std::string name) : m_name (name) {}
> > 
> > How long are these names?
> > 
> > If they don't fit in 15 chars, then this should be std::move(name).
> > 
> > So for a name like "sarif:version=2.1" it should be moved,
> > otherwise
> > you make a deep copy and reallocate a new string.
> 
> These are the names of the output schemes, which currently are just
> "text" and "sarif" [1], well under 15 chars - but there might be
> other
> schemes with longer names in the future [2] so I can use std::move
> here
> (and reinforce the habit of doing it).
> 
> Dave
> 
> [1] see
> https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output
> 
> [2] I'm playing with "experimental-html" which is 17 chars

FWIW I've added std::move here as r15-4806:
https://gcc.gnu.org/pipermail/gcc-patches/2024-October/667069.html

Dave

Reply via email to