HomeFreeBSD

Apply upstream lldb fix for unhandled Error causing abort

Description

Apply upstream lldb fix for unhandled Error causing abort

Merge commit 5033f0793fe6 from llvm git (by Dimitry Andric):

[lldb] Avoid unhandled Error in TypeSystemMap::GetTypeSystemForLanguage

When assertions are turned off, the `llvm::Error` value created at the
start of this function is overwritten using the move-assignment
operator, but the success value is never checked. Whenever a TypeSystem
cannot be found or created, this can lead to lldb core dumping with:

    Program aborted due to an unhandled Error:
    Error value was Success. (Note: Success values must still be checked prior to being destroyed).

Fix this by not creating a `llvm::Error` value in advance, and directly
returning the result of `llvm::make_error` instead, whenever an error is
encountered.

See also: <https://bugs.freebsd.org/253881> and
<https://bugs.freebsd.org/257829>.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D108088

Reported by: dmgk, ota@j.email.ne.jp
PR: 253881, 257829
MFC after: 3 days

Details

Provenance
dimAuthored on Aug 16 2021, 4:56 PM
Parents
rGc3295781fd5d: bxe: tag files to skip clang-format formatting
Branches
Unknown
Tags
Unknown