[llvm] b198016 - [ORC] Fix an overly aggressive assert.

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 25 12:29:03 PDT 2020


Does this have test coverage?

On Wed, Mar 11, 2020 at 8:05 PM Lang Hames via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

>
> Author: Lang Hames
> Date: 2020-03-11T20:04:54-07:00
> New Revision: b19801640bf621a596187d819afb57514713d1e7
>
> URL:
> https://github.com/llvm/llvm-project/commit/b19801640bf621a596187d819afb57514713d1e7
> DIFF:
> https://github.com/llvm/llvm-project/commit/b19801640bf621a596187d819afb57514713d1e7.diff
>
> LOG: [ORC] Fix an overly aggressive assert.
>
> It is ok to add dependencies on symbols that are ready, they should just be
> skipped.
>
> Added:
>
>
> Modified:
>     llvm/lib/ExecutionEngine/Orc/Core.cpp
>
> Removed:
>
>
>
>
> ################################################################################
> diff  --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp
> b/llvm/lib/ExecutionEngine/Orc/Core.cpp
> index ef4ab1e68c02..49b7395843a5 100644
> --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp
> +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp
> @@ -1001,16 +1001,18 @@ void JITDylib::addDependencies(const
> SymbolStringPtr &Name,
>        // Check the sym entry for the dependency.
>        auto OtherSymI = OtherJITDylib.Symbols.find(OtherSymbol);
>
> -#ifndef NDEBUG
>        // Assert that this symbol exists and has not reached the ready
> state
>        // already.
>        assert(OtherSymI != OtherJITDylib.Symbols.end() &&
> -             (OtherSymI->second.getState() < SymbolState::Ready &&
> -              "Dependency on emitted/ready symbol"));
> -#endif
> +             "Dependency on unknown symbol");
>
>        auto &OtherSymEntry = OtherSymI->second;
>
> +      // If the other symbol is already in the Ready state then there's no
> +      // dependency to add.
> +      if (OtherSymEntry.getState() == SymbolState::Ready)
> +        continue;
> +
>        // If the dependency is in an error state then note this and
> continue,
>        // we will move this symbol to the error state below.
>        if (OtherSymEntry.getFlags().hasError()) {
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200325/1d7d5507/attachment.html>


More information about the llvm-commits mailing list