r221804 - Use the return of readBytes to find out if we are at the end of the stream.
Rafael Avila de Espindola
rafael.espindola at gmail.com
Wed Nov 12 15:58:31 PST 2014
Would it reproduce with opt and an empty file?
Sent from my iPhone
> On Nov 12, 2014, at 18:54, Jordan Rose <jordan_rose at apple.com> wrote:
>
>
>> On Nov 12, 2014, at 15:38, Rafael Avila de Espindola <rafael.espindola at gmail.com> wrote:
>>
>>
>>
>> Sent from my iPhone
>>
>>> On Nov 12, 2014, at 18:22, Jordan Rose <jordan_rose at apple.com> wrote:
>>>
>>> Looks like it's just this:
>>>
>>> diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h
>>> index 6b9c858..41e50e1 100644
>>> --- a/include/llvm/Bitcode/BitstreamReader.h
>>> +++ b/include/llvm/Bitcode/BitstreamReader.h
>>> @@ -227,7 +227,7 @@ public:
>>> bool AtEndOfStream() {
>>> if (BitsInCurWord != 0)
>>> return false;
>>> - if (Size == NextChar)
>>> + if (Size != 0 && Size == NextChar)
>>> return true;
>>> fillCurWord();
>>> return BitsInCurWord == 0;
>>>
>>> i.e. you forgot about the fact that we /start/ with both Size and NextChar equal to 0. Does this look like the right fix to you?
>>
>>
>> Oh, so a call at the very start would fail. LGTM
>
> Yup, I don't have a test case in LLVM's code, but Swift is checking explicitly for an empty file. Took me a while to track that down.
>
> Thanks, I'll commit.
> Jordan
>
More information about the llvm-commits
mailing list