LTO: expose LTO_SYMBOL_COMDAT flag, which indicates that the definition is part of...
authorPeter Collingbourne <peter@pcc.me.uk>
Thu, 11 Jun 2015 21:41:27 +0000 (21:41 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Thu, 11 Jun 2015 21:41:27 +0000 (21:41 +0000)
Reviewers: rafael

Subscribers: llvm-commits, ruiu

Differential Revision: http://reviews.llvm.org/D10330

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239559 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm-c/lto.h
lib/LTO/LTOModule.cpp

index 1db077822ae223f238f47cba0fed36d0bb78bb7f..9f37dd71e31c8785edf768cb7321232f6bc7f2cf 100644 (file)
@@ -62,7 +62,8 @@ typedef enum {
     LTO_SYMBOL_SCOPE_HIDDEN                = 0x00001000,
     LTO_SYMBOL_SCOPE_PROTECTED             = 0x00002000,
     LTO_SYMBOL_SCOPE_DEFAULT               = 0x00001800,
     LTO_SYMBOL_SCOPE_HIDDEN                = 0x00001000,
     LTO_SYMBOL_SCOPE_PROTECTED             = 0x00002000,
     LTO_SYMBOL_SCOPE_DEFAULT               = 0x00001800,
-    LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN = 0x00002800
+    LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN = 0x00002800,
+    LTO_SYMBOL_COMDAT                      = 0x00004000
 } lto_symbol_attributes;
 
 /**
 } lto_symbol_attributes;
 
 /**
index 5cdbca66a80e54fc2a522cc62221f636994e0293..0794d3c9ea4ae4ffd81fee5ba320d805f9780c48 100644 (file)
@@ -468,6 +468,9 @@ void LTOModule::addDefinedSymbol(const char *Name, const GlobalValue *def,
   else
     attr |= LTO_SYMBOL_SCOPE_DEFAULT;
 
   else
     attr |= LTO_SYMBOL_SCOPE_DEFAULT;
 
+  if (def->hasComdat())
+    attr |= LTO_SYMBOL_COMDAT;
+
   auto Iter = _defines.insert(Name).first;
 
   // fill information structure
   auto Iter = _defines.insert(Name).first;
 
   // fill information structure