LLVM 22.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
12
13using namespace llvm;
14
16 switch (Attribute) {
17 case MCSA_Invalid:
18 case MCSA_Cold:
24 case MCSA_LGlobal:
25 case MCSA_Extern:
26 case MCSA_Exported:
28 case MCSA_Internal:
30 case MCSA_Local:
33 case MCSA_AltEntry:
35 case MCSA_Protected:
36 case MCSA_Reference:
40 case MCSA_Memtag:
41 return false;
42
45 break;
48 break;
49 case MCSA_OSLinkage:
51 break;
52 case MCSA_XPLinkage:
54 break;
55 case MCSA_Global:
56 setExternal(true);
57 break;
58 case MCSA_Weak:
60 setExternal(true);
61 setWeak();
62 break;
63 case MCSA_Hidden:
64 setHidden(true);
65 break;
66 }
67
68 return true;
69}
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:69
void setWeak(bool Value=true)
void setExternal(bool Value) const
void setHidden(bool Value=true)
void setCodeData(GOFF::ESDExecutable Value)
bool setSymbolAttribute(MCSymbolAttr Attribute)
void setLinkage(GOFF::ESDLinkageType Value)
@ ESD_EXE_CODE
Definition GOFF.h:112
@ ESD_EXE_DATA
Definition GOFF.h:111
@ ESD_LT_OS
Definition GOFF.h:142
@ ESD_LT_XPLink
Definition GOFF.h:142
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)