erik.pilkington added a comment.

In D91630#2399995 <https://reviews.llvm.org/D91630#2399995>, @aaron.ballman 
wrote:

> Can you mention this change in the release notes? Also, should we document it 
> explicitly in the Language Extensions documentation, or do you think this is 
> too tiny of a feature to warrant that?

Sure, I added release notes and language extension docs. I also added a 
__has_extension for this. That might all be a little overkill, I'm happy to 
pull out those changes if so.

In D91630#2400731 <https://reviews.llvm.org/D91630#2400731>, @rsmith wrote:

> Do `[[deprecated]]` and `[[maybe_unused]]` now work for 
> //using-declarator//s? If so, a test for that would be useful.

`[[deprecated]]` gets applied, but it doesn't have any effect, since we don't 
attach an attribute to the UsingShadowDecl, and regardless, we already look 
past the UsingShadowDecl before we reach DiagnoseUseOfDecl. I added a 
-Wignored-attributes diagnostic to call this out.



================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:714
 
-  // C++11 attributes are not allowed on a using-declaration, but GNU ones
-  // are.
   ProhibitAttributes(MisplacedAttrs);
+  DiagnoseCXX11AttributeExtension(PrefixAttrs);
----------------
rsmith wrote:
> Should we suggest moving the attributes after the identifier in this case 
> (even though that will leave the program ill-formed), as we do for 
> alias-declarations?
Sure, I added this in the new patch.


================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:737
+    DiagnoseCXX11AttributeExtension(Attrs);
+    Attrs.addAll(PrefixAttrs.begin(), PrefixAttrs.end());
 
----------------
rsmith wrote:
> Should the prefix attributes go before the suffix attributes? (I could 
> imagine there might be attributes for which order matters.) What do we do in 
> the simple-declaration case?
Surprisingly, this does apply attributes to the beginning of the list:

```
void addAll(iterator B, iterator E) {
  AttrList.insert(AttrList.begin(), B.I, E.I);
}
```

This is consistent with simple-declarations.


================
Comment at: clang/test/Parser/cxx0x-attributes.cpp:134
 
-[[]] using ns::i; // expected-error {{an attribute list cannot appear here}}
+[[]] using ns::i;
 [[unknown]] using namespace ns; // expected-warning {{unknown attribute 
'unknown' ignored}}
----------------
aaron.ballman wrote:
> Btw, a `-pedantic` test for the parser behavior would be useful so that we 
> can be sure the new diagnostic is firing as expected.
Sure, I added that in a new test file.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91630/new/

https://reviews.llvm.org/D91630

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to