Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  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_DECLOBJCCOMMON_H
  15. #define LLVM_CLANG_AST_DECLOBJCCOMMON_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,
  27.   kind_readwrite = 0x08,
  28.   kind_retain = 0x10,
  29.   kind_copy = 0x20,
  30.   kind_nonatomic = 0x40,
  31.   kind_setter = 0x80,
  32.   kind_atomic = 0x100,
  33.   kind_weak = 0x200,
  34.   kind_strong = 0x400,
  35.   kind_unsafe_unretained = 0x800,
  36.   /// Indicates that the nullability of the type was spelled with a
  37.   /// property attribute rather than a type qualifier.
  38.   kind_nullability = 0x1000,
  39.   kind_null_resettable = 0x2000,
  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.
  50.   NumObjCPropertyAttrsBits = 16
  51. };
  52.  
  53. } // namespace clang
  54.  
  55. #endif // LLVM_CLANG_AST_DECLOBJCCOMMON_H
  56.