[llvm] r271140 - [Object] Return an error code instead of asserting

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Sat May 28 15:09:10 PDT 2016


this should be testtable, no?

On 28 May 2016 at 15:45, David Majnemer via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: majnemer
> Date: Sat May 28 14:45:51 2016
> New Revision: 271140
>
> URL: http://llvm.org/viewvc/llvm-project?rev=271140&view=rev
> Log:
> [Object] Return an error code instead of asserting
>
> This makes it easier to report errors up the stack.
>
> Modified:
>     llvm/trunk/lib/Object/COFFObjectFile.cpp
>
> Modified: llvm/trunk/lib/Object/COFFObjectFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/COFFObjectFile.cpp?rev=271140&r1=271139&r2=271140&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/COFFObjectFile.cpp (original)
> +++ llvm/trunk/lib/Object/COFFObjectFile.cpp Sat May 28 14:45:51 2016
> @@ -950,10 +950,10 @@ uint64_t COFFObjectFile::getSectionSize(
>  std::error_code
>  COFFObjectFile::getSectionContents(const coff_section *Sec,
>                                     ArrayRef<uint8_t> &Res) const {
> -  // PointerToRawData and SizeOfRawData won't make sense for BSS sections,
> -  // don't do anything interesting for them.
> -  assert((Sec->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA) == 0 &&
> -         "BSS sections don't have contents!");
> +  // In COFF, a virtual section won't have any in-file
> +  // content, so the file pointer to the content will be zero.
> +  if (Sec->PointerToRawData == 0)
> +    return object_error::parse_failed;
>    // The only thing that we need to verify is that the contents is contained
>    // within the file bounds. We don't need to make sure it doesn't cover other
>    // data, as there's nothing that says that is not allowed.
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list