[lld] r307726 - [PDB] Tweak bad type index error handling

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 11 16:40:13 PDT 2017


On Tue, Jul 11, 2017 at 4:10 PM, Rui Ueyama <ruiu at google.com> wrote:

> On Tue, Jul 11, 2017 at 4:04 PM, Reid Kleckner <rnk at google.com> wrote:
>
>> On Tue, Jul 11, 2017 at 3:42 PM, Rui Ueyama <ruiu at google.com> wrote:
>>
>>> -static bool remapTypesInSymbolRecord(ObjectFile *File,
>>>> +static void remapTypesInSymbolRecord(ObjectFile *File,
>>>>                                       MutableArrayRef<uint8_t> Contents,
>>>>                                       ArrayRef<TypeIndex> TypeIndexMap,
>>>>                                       ArrayRef<TiReference> TypeRefs) {
>>>>    for (const TiReference &Ref : TypeRefs) {
>>>>      unsigned ByteSize = Ref.Count * sizeof(TypeIndex);
>>>> -    if (Contents.size() < Ref.Offset + ByteSize) {
>>>> -      log("ignoring short symbol record");
>>>> -      return false;
>>>> -    }
>>>> +    if (Contents.size() < Ref.Offset + ByteSize)
>>>> +      fatal("ignoring short symbol record");
>>>>
>>>
>>> If you use `fatal`, it doesn't ignore records but exits immediately.
>>>
>>
>> This is intentional. A short record is more indicative of data corruption
>> than an invalid type index. An invalid type index probably means we just
>> can't find the PDB.
>>
>
> The error message is a bit confusing, isn't it? It says "ignoring" but
> what it does is to abort immediately.
>

Oh, good point. :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170711/06cfb998/attachment.html>


More information about the llvm-commits mailing list