[PATCH] D35005: [ELF] - Do not apply relocations to .debug_ranges when building -gdb-index

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 6 04:03:29 PDT 2017


>> +  ObjectInfo(const object::ObjectFile &Obj)
>> +      : ElfObj(cast<ELFObjectFile<ELFT>>(Obj)) {}
>> +
>> +  bool relocate(const object::SectionRef &RelSec,
>> +                RelocAddrMap *Map) const override {
>> +    StringRef S;
>> +    if (std::error_code EC = RelSec.getName(S))
>> +      return false;
>
>Should we really just eat this error?

I was wondering what we should do here. At fact DWARF parsers already
called getName() for this section before doing this call. Parsers do not check result
though. 
(https://github.com/llvm-mirror/llvm/blob/master/lib/DebugInfo/DWARF/DWARFContext.cpp#L994)

I was not sure - can we remove error handling at all here and assume SectionRef
is always correct ? And check this error on parser side instead.

>> +    if (S == ".rela.debug_ranges" || S == ".rel.debug_ranges")
>> +      return relocateDebugRanges(RelSec, Map);
>> +    return false;
>> +  }
>
>Please expand the description. It looks like you relocate *only*
>.debug_ranges, no?

I am relocating only .debug_ranges on LLD side, all other debug sections
are still relocated on parsers side. I'll add the comment.

Cheers,
Rafael


More information about the llvm-commits mailing list