LLVM  15.0.0git
Deprecated.h
Go to the documentation of this file.
1 /*===-- llvm-c/Deprecated.h - Deprecation macro -------------------*- C -*-===*\
2 |* *|
3 |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
4 |* Exceptions. *|
5 |* See https://llvm.org/LICENSE.txt for license information. *|
6 |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
7 |* *|
8 |*===----------------------------------------------------------------------===*|
9 |* *|
10 |* This header declares LLVM_ATTRIBUTE_C_DEPRECATED() macro, which can be *|
11 |* used to deprecate functions in the C interface. *|
12 |* *|
13 \*===----------------------------------------------------------------------===*/
14 
15 #ifndef LLVM_C_DEPRECATED_H
16 #define LLVM_C_DEPRECATED_H
17 
18 #ifndef __has_feature
19 # define __has_feature(x) 0
20 #endif
21 
22 // This is a variant of LLVM_ATTRIBUTE_DEPRECATED() that is compatible with
23 // C compilers.
24 #if __has_feature(attribute_deprecated_with_message)
25 # define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \
26  decl __attribute__((deprecated(message)))
27 #elif defined(__GNUC__)
28 # define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \
29  decl __attribute__((deprecated))
30 #elif defined(_MSC_VER)
31 # define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \
32  __declspec(deprecated(message)) decl
33 #else
34 # define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message) \
35  decl
36 #endif
37 
38 #endif /* LLVM_C_DEPRECATED_H */