Re: [PATCH v5] attribs: Implement -Wno-attributes=vendor::attr [PR101940]

Bernhard Reutner-Fischer rep.dot.nop@gmail.com
Sat Nov 6 01:32:26 GMT 2021


On 6 November 2021 01:21:43 CET, Marek Polacek via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:

>
>Thanks, so like this?  I'm including an incremental diff so that it's
>clear what changed:
>
>diff --git a/gcc/attribs.c b/gcc/attribs.c
>index d5fba7f4bbb..addfe6f6c80 100644
>--- a/gcc/attribs.c
>+++ b/gcc/attribs.c
>@@ -237,7 +237,7 @@ check_attribute_tables (void)
>    the end of parsing of all TUs. */
> static vec<attribute_spec *> ignored_attributes_table;
> 
>-/* Parse arguments ARGS of -Wno-attributes=.
>+/* Parse arguments V of -Wno-attributes=.
>    Currently we accept:
>      vendor::attr
>      vendor::
>@@ -252,12 +252,15 @@ handle_ignored_attributes_option (vec<char *> *v)
> 
>   for (auto opt : v)
>     {
>+      /* We're going to be modifying the string.  */
>+      opt = xstrdup (opt);
>       char *q = strstr (opt, "::");
>       /* We don't accept '::attr'.  */
>       if (q == nullptr || q == opt)
> 	{
> 	  error ("wrong argument to ignored attributes");
> 	  inform (input_location, "valid format is %<ns::attr%> or %<ns::%>");
>+	  free (opt);
> 	  continue;
> 	}

Only xstrdup here, after the strstr check?
Should maybe strdup the rest here, not full opt..
thanks,
>       /* Cut off the vendor part.  */
>@@ -274,6 +277,7 @@ handle_ignored_attributes_option (vec<char *> *v)
>       if (!valid_p (vendor) || !valid_p (attr))
> 	{
> 	  error ("wrong argument to ignored attributes");
>+	  free (opt);
> 	  continue;
> 	}
>       /* Turn "__attr__" into "attr" so that we have a canonical form of



More information about the Gcc-patches mailing list