aaron.ballman added a comment.

Oh wow, GCC has supported this for a long time; I wasn't aware of that. Thanks 
for this patch!



================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:79
+
+  auto ReadLabelAttrubutes = [&] {
+    // Read label attributes, if present.
----------------
However, I don't think there's a reason we need this lambda -- it seems we can 
call `MaybeParseGNUAttributes()` instead, and get the attribute location from 
the `ParsedAttributesWithRange` object passed in.


================
Comment at: clang/test/Parser/namespace-attributes.cpp:3
+
+namespace __attribute__((visibility("hidden"))) A
+{
----------------
Another test case that I think we need is to test attribute parsing order 
between the different syntaxes. e.g.,
```
namespace __attribute__(()) [[]] A
{
}

namespace [[]] __attribute__(()) B
{
}
```
It's not clear to me that we want to match how GCC handles this case: 
https://godbolt.org/z/e1bjcEje6 but instead handle it more like how Clang 
handles it in structure declarations: https://godbolt.org/z/drGhb65ET.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D121245

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

Reply via email to