clang  12.0.0git
DeclObjCCommon.h
Go to the documentation of this file.
1 //===- DeclObjCCommon.h - Classes for representing declarations -*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file contains common ObjC enums and classes used in AST and
10 // Sema.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef LLVM_CLANG_AST_DECLOBJC_COMMON_H
15 #define LLVM_CLANG_AST_DECLOBJC_COMMON_H
16 
17 namespace clang {
18 
19 /// ObjCPropertyAttribute::Kind - list of property attributes.
20 /// Keep this list in sync with LLVM's Dwarf.h ApplePropertyAttributes.s
21 namespace ObjCPropertyAttribute {
22 enum Kind {
23  kind_noattr = 0x00,
24  kind_readonly = 0x01,
25  kind_getter = 0x02,
26  kind_assign = 0x04,
28  kind_retain = 0x10,
29  kind_copy = 0x20,
31  kind_setter = 0x80,
32  kind_atomic = 0x100,
33  kind_weak = 0x200,
34  kind_strong = 0x400,
36  /// Indicates that the nullability of the type was spelled with a
37  /// property attribute rather than a type qualifier.
38  kind_nullability = 0x1000,
40  kind_class = 0x4000,
41  kind_direct = 0x8000,
42  // Adding a property should change NumObjCPropertyAttrsBits
43  // Also, don't forget to update the Clang C API at CXObjCPropertyAttrKind and
44  // clang_Cursor_getObjCPropertyAttributes.
45 };
46 } // namespace ObjCPropertyAttribute::Kind
47 
48 enum {
49  /// Number of bits fitting all the property attributes.
51 };
52 
53 } // namespace clang
54 
55 #endif // LLVM_CLANG_AST_DECLOBJC_COMMON_H
Indicates that the nullability of the type was spelled with a property attribute rather than a type q...
Number of bits fitting all the property attributes.
Dataflow Directional Tag Classes.