2010-05-07 21:44:23 +00:00
|
|
|
//===- 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.
|
2010-12-29 14:14:06 +00:00
|
|
|
SF_ThumbFunc = 0x0008,
|
2010-05-07 21:44:23 +00:00
|
|
|
SF_NoDeadStrip = 0x0020,
|
|
|
|
SF_WeakReference = 0x0040,
|
2010-11-19 18:39:33 +00:00
|
|
|
SF_WeakDefinition = 0x0080,
|
|
|
|
SF_SymbolResolver = 0x0100
|
2010-05-07 21:44:23 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // end namespace llvm
|
|
|
|
|
|
|
|
#endif
|