diff --git a/llvm/include/llvm/Object/ELF.h b/llvm/include/llvm/Object/ELF.h index 9ab0973c1f53ac670f64726f128d3a499379d802..c5c18a0666a760e2197c0f8495ba55d1becf44b9 100644 --- a/llvm/include/llvm/Object/ELF.h +++ b/llvm/include/llvm/Object/ELF.h @@ -1232,7 +1232,8 @@ error_code ELFObjectFile::getSymbolFlags(DataRefImpl Symb, Result |= SymbolRef::SF_Absolute; if (symb->getType() == ELF::STT_FILE || - symb->getType() == ELF::STT_SECTION) + symb->getType() == ELF::STT_SECTION || + Symb == begin_symbols()->getRawDataRefImpl()) Result |= SymbolRef::SF_FormatSpecific; if (getSymbolTableIndex(symb) == ELF::SHN_UNDEF) diff --git a/llvm/test/Object/nm-trivial-object.test b/llvm/test/Object/nm-trivial-object.test index 5c3cc315e543a70370af121cf3774104b08da495..d5177457a8df64c2d5172f74fe32a3be8599e1d8 100644 --- a/llvm/test/Object/nm-trivial-object.test +++ b/llvm/test/Object/nm-trivial-object.test @@ -18,6 +18,7 @@ COFF: U {{_?}}SomeOtherFunction COFF: 00000000 T {{_?}}main COFF: U {{_?}}puts +ELF-NOT: U ELF: U SomeOtherFunction ELF: 00000000 T main ELF: U puts