| //===- 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 |