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