Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:36:33

0001 //===- DeclObjCCommon.h - Classes for representing declarations -*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 //  This file contains common ObjC enums and classes used in AST and
0010 //  Sema.
0011 //
0012 //===----------------------------------------------------------------------===//
0013 
0014 #ifndef LLVM_CLANG_AST_DECLOBJCCOMMON_H
0015 #define LLVM_CLANG_AST_DECLOBJCCOMMON_H
0016 
0017 namespace clang {
0018 
0019 /// ObjCPropertyAttribute::Kind - list of property attributes.
0020 /// Keep this list in sync with LLVM's Dwarf.h ApplePropertyAttributes.s
0021 namespace ObjCPropertyAttribute {
0022 enum Kind {
0023   kind_noattr = 0x00,
0024   kind_readonly = 0x01,
0025   kind_getter = 0x02,
0026   kind_assign = 0x04,
0027   kind_readwrite = 0x08,
0028   kind_retain = 0x10,
0029   kind_copy = 0x20,
0030   kind_nonatomic = 0x40,
0031   kind_setter = 0x80,
0032   kind_atomic = 0x100,
0033   kind_weak = 0x200,
0034   kind_strong = 0x400,
0035   kind_unsafe_unretained = 0x800,
0036   /// Indicates that the nullability of the type was spelled with a
0037   /// property attribute rather than a type qualifier.
0038   kind_nullability = 0x1000,
0039   kind_null_resettable = 0x2000,
0040   kind_class = 0x4000,
0041   kind_direct = 0x8000,
0042   // Adding a property should change NumObjCPropertyAttrsBits
0043   // Also, don't forget to update the Clang C API at CXObjCPropertyAttrKind and
0044   // clang_Cursor_getObjCPropertyAttributes.
0045 };
0046 } // namespace ObjCPropertyAttribute::Kind
0047 
0048 enum {
0049   /// Number of bits fitting all the property attributes.
0050   NumObjCPropertyAttrsBits = 16
0051 };
0052 
0053 } // namespace clang
0054 
0055 #endif // LLVM_CLANG_AST_DECLOBJCCOMMON_H