diff options
Diffstat (limited to 'llvm-c/Deprecated.h')
| -rw-r--r-- | llvm-c/Deprecated.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/llvm-c/Deprecated.h b/llvm-c/Deprecated.h new file mode 100644 index 0000000..1ed5d11 --- /dev/null +++ b/llvm-c/Deprecated.h @@ -0,0 +1,38 @@ +/*===-- llvm-c/Deprecated.h - Deprecation macro -------------------*- C -*-===*\ +|* *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This header declares LLVM_ATTRIBUTE_C_DEPRECATED() macro, which can be *| +|* used to deprecate functions in the C interface. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_C_DEPRECATED_H +#define LLVM_C_DEPRECATED_H + +#ifndef __has_feature +# define __has_feature(x) 0 +#endif + +// This is a variant of LLVM_ATTRIBUTE_DEPRECATED() that is compatible with +// C compilers. +#if __has_feature(attribute_deprecated_with_message) +# define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \ + decl __attribute__((deprecated(message))) +#elif defined(__GNUC__) +# define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \ + decl __attribute__((deprecated)) +#elif defined(_MSC_VER) +# define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \ + __declspec(deprecated(message)) decl +#else +# define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \ + decl +#endif + +#endif /* LLVM_C_DEPRECATED_H */ |