On Mon, Jun 17, 2019 at 09:50:51AM -0600, Martin Sebor wrote:
> On 6/16/19 1:10 PM, Marek Polacek wrote:
> > While messing with [[noreturn]] I also found out that we don't detect
> > the case when an attribute specifier that takes no arguments contains
> > an attribute-argument-clause.
> > 
> > Bootstrapped/regtested on x86_64-linux, ok for trunk?
> > 
> > 2019-06-16  Marek Polacek  <pola...@redhat.com>
> > 
> >     PR c++/83820 - excessive attribute arguments not detected.
> >     * parser.c (cp_parser_std_attribute): Detect excessive arguments.
> > 
> >     * g++.dg/cpp0x/gen-attrs-67.C: New test.
> > 
> > diff --git gcc/cp/parser.c gcc/cp/parser.c
> > index 8f5ae84670a..871bc45da63 100644
> > --- gcc/cp/parser.c
> > +++ gcc/cp/parser.c
> > @@ -26149,6 +26149,20 @@ cp_parser_std_attribute (cp_parser *parser, tree 
> > attr_ns)
> >       vec<tree, va_gc> *vec;
> >       int attr_flag = normal_attr;
> > +    /* Maybe we don't expect to see any arguments for this attribute.  */
> > +    const attribute_spec *as
> > +      = lookup_attribute_spec (TREE_PURPOSE (attribute));
> > +    if (as && as->max_length == 0)
> > +      {
> > +   error_at (token->location, "attribute %qE does not take any arguments",
> > +             attr_id);
> 
> Not to be too anal about this but most messages have the word order
> reversed and would be phrased as
> 
>   %qE attribute does not take any arguments
> 
> I've been adjusting the order to match this form as I notice it so
> it would be great if we could use this form in new diagnostics as
> well.

*shrug* I have no problem changing that.  Will commit with your proposed
change.  Thanks,

--
Marek Polacek • Red Hat, Inc. • 300 A St, Boston, MA

Reply via email to