forked from OSchip/llvm-project
Change the LLVM_ATTRIBUTE_DEPRECATED macro to use C++14 attribute.
C++14 attributes are superior because they can be applied to functions with inline definition and the syntax is cleaner. I intend to convert all uses and then remove the macro. One issue that might hold back switching uses to C++14 attributes is that clang-format does not put long attributes on separate lines and formatted code will look like: ``` template <typename T> [[deprecated("blah blah")]] void foooooooooooooooooooooooooooo() { ... } ``` Putting long attributes on a separate line would be prettier. See https://stackoverflow.com/questions/45740466/clang-format-setting-to-control-c-attributes AttributeMacros probably won't help because it can't match the custom message. https://clang.llvm.org/docs/ClangFormatStyleOptions.html Reviewed By: rriddle, MaskRay Differential Revision: https://reviews.llvm.org/D94219
This commit is contained in:
parent
a06aa1037c
commit
ace516fb33
llvm/include/llvm/Support
|
@ -314,19 +314,9 @@
|
|||
#endif
|
||||
|
||||
// LLVM_ATTRIBUTE_DEPRECATED(decl, "message")
|
||||
#if __has_feature(attribute_deprecated_with_message)
|
||||
# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
|
||||
decl __attribute__((deprecated(message)))
|
||||
#elif defined(__GNUC__)
|
||||
# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
|
||||
decl __attribute__((deprecated))
|
||||
#elif defined(_MSC_VER)
|
||||
# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
|
||||
__declspec(deprecated(message)) decl
|
||||
#else
|
||||
# define LLVM_ATTRIBUTE_DEPRECATED(decl, message) \
|
||||
decl
|
||||
#endif
|
||||
// This macro will be removed.
|
||||
// Use C++14's attribute instead: [[deprecated("message")]]
|
||||
#define LLVM_ATTRIBUTE_DEPRECATED(decl, message) [[deprecated(message)]] decl
|
||||
|
||||
/// LLVM_BUILTIN_UNREACHABLE - On compilers which support it, expands
|
||||
/// to an expression which states that it is undefined behavior for the
|
||||
|
|
Loading…
Reference in New Issue