[llvm-dev] Change LLVM_ATTRIBUTE_DEPRECATED macro to [[deprecated]]

Chris Tetreault via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 8 11:48:18 PST 2021


One potential issue is the possible existence of compilers that claim to support C++14, but are not fully compliant. I don’t know offhand of any examples of “C++14 compliant” compilers that don’t support [[deprecated]] but it may be worth looking into if any mainstream compilers have this problem. Assuming such a compiler exists, and we care about it, the macro has the advantage that it can be made to be portable.

That issue aside, since we require C++14 in CMake, then I think it’s fine to move forward with this.

Thanks,
   Christopher Tetreault

From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Christian Sigg via llvm-dev
Sent: Friday, January 8, 2021 3:06 AM
To: llvm-dev at lists.llvm.org
Subject: [EXT] [llvm-dev] Change LLVM_ATTRIBUTE_DEPRECATED macro to [[deprecated]]

The LLVM_ATTRIBUTE_DEPRECATED macro marks e.g. function declarations as deprecated.

C++14 introduced the [[deprecated]] attribute, and I would like to switch LLVM's code to that because it's portable, easier to read, and can be applied to inline functions as well.

https://reviews.llvm.org/D94219 is the first step towards that by changing the LLVM_ATTRIBUTE_DEPRECATED implementation from __attribute__/__declspec to [[deprecated]]. In a follow-up change, I will switch the call sites to use [[deprecated]] directly and finally remove the macro.

Are there any downsides that I'm missing or any objections?

Thanks! Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210108/5afe0237/attachment.html>


More information about the llvm-dev mailing list