aaron.ballman added a comment.

In D151683#4566907 <https://reviews.llvm.org/D151683#4566907>, @eaeltsin wrote:

> Hi,
>
> Is it a known issue, that clang doesn't compile `void foo(char *argv[] 
> [[maybe_unused]]) {}` ? The error is `error: 'maybe_unused' attribute cannot 
> be applied to types`.
>
> https://godbolt.org/z/r9E81cWxh - clang fails, but gcc doesn't.
>
> It looks like there is a lot of oss code of the form `void foo(char *argv[] 
> ATTRIBUTE_UNUSED)`, where `ATTRIBUTE_UNUSED` was configured to 
> `__attribute__((unused))` before this change (thus compiled ok) and to 
> `[[maybe_unused]]` after this change (thus started to break).

https://eel.is/c++draft/dcl.array#3.sentence-2 -- an attribute in that position 
appertains to the array type and `maybe_unused` cannot be applied to types in 
that way, so I believe Clang's behavior is correct. So I think the C++ 
attribute behavior is expected, but the change between `__attribute__` and 
`[[]]` may be catching folks off-guard.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151683

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

Reply via email to