From ae586d27ffb1afc05b77cf7434433d582181ac64 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 llvm-svn: 232020 --- llvm/include/llvm/Object/ELFTypes.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/llvm/include/llvm/Object/ELFTypes.h b/llvm/include/llvm/Object/ELFTypes.h index 9a97f7b3..5a4e03e 100644 --- a/llvm/include/llvm/Object/ELFTypes.h +++ b/llvm/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.7.4