]> git.proxmox.com Git - rustc.git/blame - src/llvm/include/llvm/MC/MCMachOSymbolFlags.h
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / include / llvm / MC / MCMachOSymbolFlags.h
CommitLineData
223e47cc
LB
1//===- MCMachOSymbolFlags.h - MachO Symbol Flags ----------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file declares the SymbolFlags used for the MachO target.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_MC_MCMACHOSYMBOLFLAGS_H
15#define LLVM_MC_MCMACHOSYMBOLFLAGS_H
16
17// These flags are mostly used in MCMachOStreamer.cpp but also needed in
18// MachObjectWriter.cpp to test for Weak Definitions of symbols to emit
19// the correct relocation information.
20
21namespace llvm {
1a4d82fc
JJ
22 /// MachOSymbolFlags - We store the value for the 'desc' symbol field in the
23 /// lowest 16 bits of the implementation defined flags.
24 enum MachOSymbolFlags { // See <mach-o/nlist.h>.
223e47cc
LB
25 SF_DescFlagsMask = 0xFFFF,
26
27 // Reference type flags.
28 SF_ReferenceTypeMask = 0x0007,
29 SF_ReferenceTypeUndefinedNonLazy = 0x0000,
30 SF_ReferenceTypeUndefinedLazy = 0x0001,
31 SF_ReferenceTypeDefined = 0x0002,
32 SF_ReferenceTypePrivateDefined = 0x0003,
33 SF_ReferenceTypePrivateUndefinedNonLazy = 0x0004,
34 SF_ReferenceTypePrivateUndefinedLazy = 0x0005,
35
36 // Other 'desc' flags.
37 SF_ThumbFunc = 0x0008,
38 SF_NoDeadStrip = 0x0020,
39 SF_WeakReference = 0x0040,
40 SF_WeakDefinition = 0x0080,
41 SF_SymbolResolver = 0x0100
42 };
43
44} // end namespace llvm
45
46#endif