| //===- MCMachOSymbolFlags.h - MachO Symbol Flags ----------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file declares the SymbolFlags used for the MachO target. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_MC_MCMACHOSYMBOLFLAGS_H |
| #define LLVM_MC_MCMACHOSYMBOLFLAGS_H |
| |
| // These flags are mostly used in MCMachOStreamer.cpp but also needed in |
| // MachObjectWriter.cpp to test for Weak Definitions of symbols to emit |
| // the correct relocation information. |
| |
| namespace llvm { |
| /// SymbolFlags - We store the value for the 'desc' symbol field in the lowest |
| /// 16 bits of the implementation defined flags. |
| enum SymbolFlags { // See <mach-o/nlist.h>. |
| SF_DescFlagsMask = 0xFFFF, |
| |
| // Reference type flags. |
| SF_ReferenceTypeMask = 0x0007, |
| SF_ReferenceTypeUndefinedNonLazy = 0x0000, |
| SF_ReferenceTypeUndefinedLazy = 0x0001, |
| SF_ReferenceTypeDefined = 0x0002, |
| SF_ReferenceTypePrivateDefined = 0x0003, |
| SF_ReferenceTypePrivateUndefinedNonLazy = 0x0004, |
| SF_ReferenceTypePrivateUndefinedLazy = 0x0005, |
| |
| // Other 'desc' flags. |
| SF_ThumbFunc = 0x0008, |
| SF_NoDeadStrip = 0x0020, |
| SF_WeakReference = 0x0040, |
| SF_WeakDefinition = 0x0080, |
| SF_SymbolResolver = 0x0100 |
| }; |
| |
| } // end namespace llvm |
| |
| #endif |