diff options
Diffstat (limited to 'lld/ELF/InputFiles.cpp')
| -rw-r--r-- | lld/ELF/InputFiles.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp index 927feb43217..2d90bebf2ce 100644 --- a/lld/ELF/InputFiles.cpp +++ b/lld/ELF/InputFiles.cpp @@ -450,10 +450,12 @@ void BitcodeFile::parse() { Sym.printName(OS); StringRef NameRef = Saver.save(StringRef(Name)); SymbolBody *Body; - if (Sym.getFlags() & BasicSymbolRef::SF_Undefined) + uint32_t Flags = Sym.getFlags(); + if (Flags & BasicSymbolRef::SF_Undefined) Body = new (Alloc) Undefined(NameRef, false, STV_DEFAULT, false); else - Body = new (Alloc) DefinedBitcode(NameRef); + Body = + new (Alloc) DefinedBitcode(NameRef, Flags & BasicSymbolRef::SF_Weak); SymbolBodies.push_back(Body); } } |

