LLVM 24.0.0git
MCSymbolGOFF.cpp
Go to the documentation of this file.
1//===- MCSymbolGOFF.cpp - GOFF Symbol Representation ----------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
11#include "llvm/MC/MCContext.h"
14
15using namespace llvm;
16
37
39 switch (Attribute) {
40 case MCSA_Invalid:
41 case MCSA_Cold:
47 case MCSA_LGlobal:
48 case MCSA_Extern:
49 case MCSA_Exported:
50 case MCSA_Internal:
52 case MCSA_Local:
55 case MCSA_AltEntry:
57 case MCSA_Protected:
58 case MCSA_Reference:
62 case MCSA_Memtag:
63 return false;
64
66 setIndirect(true);
67 break;
70 break;
73 break;
74 case MCSA_OSLinkage:
76 break;
77 case MCSA_XPLinkage:
79 break;
80 case MCSA_Global:
81 setExternal(true);
82 break;
83 case MCSA_Weak:
85 setExternal(true);
86 setWeak();
87 break;
88 case MCSA_Hidden:
89 setHidden(true);
90 break;
91 }
92
93 return true;
94}
This file contains the MCSymbolGOFF class.
Functions, function parameters, and return types can have attributes to indicate how they should be t...
Definition Attributes.h:105
void setAlignment(Align Value)
Definition MCSection.h:665
void setWeak(bool Value=true)
void setExternal(bool Value) const
LLVM_ABI MCSectionGOFF * getSectionForCommonSymbol(MCContext &Ctx, Align ByteAlignment)
Return the PR section to use when emitting this symbol as a common symbol.
void setIndirect(bool Value=true)
void setHidden(bool Value=true)
GOFF::ESDBindingScope getBindingScope() const
void setCodeData(GOFF::ESDExecutable Value)
LLVM_ABI bool setSymbolAttribute(MCSymbolAttr Attribute)
void setLinkage(GOFF::ESDLinkageType Value)
StringRef getName() const
getName - Get the symbol name.
Definition MCSymbol.h:188
friend class MCContext
Definition MCSymbol.h:135
static SectionKind getMetadata()
static SectionKind getBSS()
@ ESD_LB_Deferred
Definition GOFF.h:129
constexpr StringLiteral CLASS_WSA
@ ESD_BA_Merge
Definition GOFF.h:99
@ ESD_TS_ByteOriented
Definition GOFF.h:92
@ ESD_EXE_CODE
Definition GOFF.h:112
@ ESD_EXE_DATA
Definition GOFF.h:111
@ ESD_RQ_0
Definition GOFF.h:69
@ ESD_BSC_Unspecified
Definition GOFF.h:135
@ ESD_LT_OS
Definition GOFF.h:142
@ ESD_LT_XPLink
Definition GOFF.h:142
@ ESD_NS_Parts
Definition GOFF.h:65
@ ESD_TA_Unspecified
Definition GOFF.h:103
@ ESD_RMODE_64
Definition GOFF.h:88
This is an optimization pass for GlobalISel generic memory operations.
@ MCSA_Local
.local (ELF)
@ MCSA_WeakDefAutoPrivate
.weak_def_can_be_hidden (MachO)
@ MCSA_Memtag
.memtag (ELF)
@ MCSA_Protected
.protected (ELF)
@ MCSA_OSLinkage
symbol uses OS linkage (GOFF)
@ MCSA_Exported
.globl _foo, exported (XCOFF)
@ MCSA_PrivateExtern
.private_extern (MachO)
@ MCSA_Internal
.internal (ELF)
@ MCSA_WeakReference
.weak_reference (MachO)
@ MCSA_AltEntry
.alt_entry (MachO)
@ MCSA_ELF_TypeIndFunction
.type _foo, STT_GNU_IFUNC
@ MCSA_LazyReference
.lazy_reference (MachO)
@ MCSA_ELF_TypeNoType
.type _foo, STT_NOTYPE # aka @notype
@ MCSA_Reference
.reference (MachO)
@ MCSA_SymbolResolver
.symbol_resolver (MachO)
@ MCSA_Weak
.weak
@ MCSA_ELF_TypeTLS
.type _foo, STT_TLS # aka @tls_object
@ MCSA_IndirectSymbol
.indirect_symbol (MachO)
@ MCSA_WeakDefinition
.weak_definition (MachO)
@ MCSA_ELF_TypeCommon
.type _foo, STT_COMMON # aka @common
@ MCSA_Global
.type _foo, @gnu_unique_object
@ MCSA_WeakAntiDep
.weak_anti_dep (COFF)
@ MCSA_XPLinkage
symbol uses XP linkage (GOFF)
@ MCSA_Extern
.extern (XCOFF)
@ MCSA_Cold
.cold (MachO)
@ MCSA_ELF_TypeObject
.type _foo, STT_OBJECT # aka @object
@ MCSA_ELF_TypeGnuUniqueObject
@ MCSA_ELF_TypeFunction
.type _foo, STT_FUNC # aka @function
@ MCSA_Hidden
.hidden (ELF)
@ MCSA_LGlobal
.lglobl (XCOFF)
@ MCSA_Invalid
Not a valid directive.
@ MCSA_NoDeadStrip
.no_dead_strip (MachO)
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition Alignment.h:39