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