[PATCH] [Object/ELF] Add support for setVisibility()

Davide Italiano davide at freebsd.org
Wed Mar 11 23:32:10 PDT 2015


You're right, my bad. I updated the patch. When I was looking at this file I noticed that there's a fair amount of magic hardcoded in there. I left SVT_MASK spelled at 0x3 and I'll plan to audit it entirely and change all the hardcoded values with properly defined constants. Does this make sense to you?


http://reviews.llvm.org/D8279

Files:
  include/llvm/Object/ELFTypes.h

Index: include/llvm/Object/ELFTypes.h
===================================================================
--- include/llvm/Object/ELFTypes.h
+++ include/llvm/Object/ELFTypes.h
@@ -189,7 +189,15 @@
   }

   /// 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

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8279.21799.patch
Type: text/x-patch
Size: 659 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150312/672bf178/attachment.bin>


More information about the llvm-commits mailing list