diff --git a/llvm/lib/Object/Archive.cpp b/llvm/lib/Object/Archive.cpp --- a/llvm/lib/Object/Archive.cpp +++ b/llvm/lib/Object/Archive.cpp @@ -136,8 +136,11 @@ return; ErrorAsOutParameter ErrAsOutParam(Err); - if (Size < getSizeOf()) - *Err = createMemberHeaderParseError(this, RawHeaderPtr, Size); + if (Size < getSizeOf()) { + Error SubErr = createMemberHeaderParseError(this, RawHeaderPtr, Size); + if (Err) + *Err = std::move(SubErr); + } } // This gets the raw name from the ArMemHdr->Name field and checks that it is