[cfe-dev] Attribute on constructor parameter rejected

Richard Smith richard at metafoo.co.uk
Thu Sep 5 17:15:07 PDT 2013


On Thu, Sep 5, 2013 at 12:50 PM, Guillaume Papin <guillaume.papin at epitech.eu
> wrote:

> Hum, I updated yesterday so it's quite recent. I tried the following
> with both my system-wide install of clang (version 3.2) and the one I
> built after my update yesterday:
>
>   [papin_g:~/GSoC/build]$ cat /tmp/gnu-unused.cpp
>   struct AB {
>     AB([[gnu::unused]] int i) {}
>     void f([[gnu::unused]] int i) {} // no error for this line
>   };
>   [papin_g:~/GSoC/build]$ ./bin/clang++ -std=c++11 -fsyntax-only
> /tmp/gnu-unused.cpp
>   /tmp/gnu-unused.cpp:2:6: error: expected member name or ';' after
> declaration specifiers
>     AB([[gnu::unused]] int i) {}
>     ~~ ^
>   /tmp/gnu-unused.cpp:2:6: error: an attribute list cannot appear here
>     AB([[gnu::unused]] int i) {}
>        ^~~~~~~~~~~~~~~
>   /tmp/gnu-unused.cpp:2:22: error: expected ')'
>     AB([[gnu::unused]] int i) {}
>                        ^
>   /tmp/gnu-unused.cpp:2:5: note: to match this '('
>     AB([[gnu::unused]] int i) {}
>       ^
>   3 errors generated.
>
>
> I will update Clang tomorrow and see if the problem persists. Maybe it's
> only me and I checked out at the wrong time or it's has been fixed since
> yesterday.


This was a bug in our disambiguation of constructor / non-constructor
declarations. Fixed in r190111, thanks.


> Aaron Ballman <aaron at aaronballman.com> writes:
>
> > On Thu, Sep 5, 2013 at 11:49 AM, Guillaume Papin
> > <guillaume.papin at epitech.eu> wrote:
> >> Hi,
> >>
> >> While testing some code with attributes I found the following that looks
> >> like a bug to me:
> >>
> >>   $ clang-check /tmp/unused.cpp -- -std=c++11
> >>
> >>   struct AB {
> >>     AB([[gnu::unused]] int i) {}
> >>     // ^~~~~~~~~~~~~~~ /tmp/unused.cpp:2:5: error: an attribute list
> cannot appear here
> >>
> >>     void f([[gnu::unused]] int i) {} // no error for this line
> >>   };
> >>
> >> Do constructors have different parameter-declaration-list than member
> >> functions?
> >
> > They do not -- are you using ToT?  I get no errors with your code on a
> > relatively recent build.
> >
> > ~Aaron
> >
>
> --
> Guillaume Papin
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130905/f067314c/attachment.html>


More information about the cfe-dev mailing list