[llvm] r232215 - Turn assertion into bitcode reading error

Rafael EspĂ­ndola rafael.espindola at gmail.com
Sat Mar 14 06:02:38 PDT 2015


Filipe has been adding tests for the error handling. The old testing
situation was pretty bad, so if you could create a broken bitcode file to
test this it would be awesome.
On Mar 13, 2015 5:13 PM, "David Blaikie" <dblaikie at gmail.com> wrote:

> Author: dblaikie
> Date: Fri Mar 13 16:03:34 2015
> New Revision: 232215
>
> URL: http://llvm.org/viewvc/llvm-project?rev=232215&view=rev
> Log:
> Turn assertion into bitcode reading error
>
> I don't think we test invalid bitcode records in any detail, so no test
> here - just a change for consistency with existing error checks in
> surrounding code.
>
> Modified:
>     llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
>
> Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=232215&r1=232214&r2=232215&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
> +++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Fri Mar 13 16:03:34
> 2015
> @@ -3126,8 +3126,8 @@ std::error_code BitcodeReader::ParseFunc
>        }
>
>        I = GetElementPtrInst::Create(BasePtr, GEPIdx);
> -      (void)Ty;
> -      assert(!Ty || Ty ==
> cast<GetElementPtrInst>(I)->getSourceElementType());
> +      if (Ty && Ty != cast<GetElementPtrInst>(I)->getSourceElementType())
> +        return Error("Invalid record");
>        InstructionList.push_back(I);
>        if (InBounds)
>          cast<GetElementPtrInst>(I)->setIsInBounds(true);
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150314/307b3e1a/attachment.html>


More information about the llvm-commits mailing list