LLVM API Documentation
00001 //===- MCMachOSymbolFlags.h - MachO Symbol Flags ----------------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file declares the SymbolFlags used for the MachO target. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef LLVM_MC_MCMACHOSYMBOLFLAGS_H 00015 #define LLVM_MC_MCMACHOSYMBOLFLAGS_H 00016 00017 // These flags are mostly used in MCMachOStreamer.cpp but also needed in 00018 // MachObjectWriter.cpp to test for Weak Definitions of symbols to emit 00019 // the correct relocation information. 00020 00021 namespace llvm { 00022 /// MachOSymbolFlags - We store the value for the 'desc' symbol field in the 00023 /// lowest 16 bits of the implementation defined flags. 00024 enum MachOSymbolFlags { // See <mach-o/nlist.h>. 00025 SF_DescFlagsMask = 0xFFFF, 00026 00027 // Reference type flags. 00028 SF_ReferenceTypeMask = 0x0007, 00029 SF_ReferenceTypeUndefinedNonLazy = 0x0000, 00030 SF_ReferenceTypeUndefinedLazy = 0x0001, 00031 SF_ReferenceTypeDefined = 0x0002, 00032 SF_ReferenceTypePrivateDefined = 0x0003, 00033 SF_ReferenceTypePrivateUndefinedNonLazy = 0x0004, 00034 SF_ReferenceTypePrivateUndefinedLazy = 0x0005, 00035 00036 // Other 'desc' flags. 00037 SF_ThumbFunc = 0x0008, 00038 SF_NoDeadStrip = 0x0020, 00039 SF_WeakReference = 0x0040, 00040 SF_WeakDefinition = 0x0080, 00041 SF_SymbolResolver = 0x0100 00042 }; 00043 00044 } // end namespace llvm 00045 00046 #endif