From f23883936ce24b16df2ee86559f6d24f51faecb6 Mon Sep 17 00:00:00 2001 From: Davide Italiano Date: Thu, 12 Mar 2015 07:48:25 +0000 Subject: [PATCH] [Object/ELF] Add support for setVisibility() This is a prerequisite to implement symbol visibility for ELF in lld. Differential Revision: http://reviews.llvm.org/D8279 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232020 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Object/ELFTypes.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/llvm/Object/ELFTypes.h b/include/llvm/Object/ELFTypes.h index 9a97f7b3fc2..5a4e03e7bbe 100644 --- a/include/llvm/Object/ELFTypes.h +++ b/include/llvm/Object/ELFTypes.h @@ -189,7 +189,15 @@ struct Elf_Sym_Impl : Elf_Sym_Base { } /// Access to the STV_xxx flag stored in the first two bits of st_other. + /// STV_DEFAULT: 0 + /// STV_INTERNAL: 1 + /// STV_HIDDEN: 2 + /// STV_PROTECTED: 3 unsigned char getVisibility() const { return st_other & 0x3; } + void setVisibility(unsigned char v) { + assert(v < 4 && "Invalid value for visibility"); + st_other = (st_other & ~0x3) | v; + } }; /// Elf_Versym: This is the structure of entries in the SHT_GNU_versym section -- 2.34.1