diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-15 20:45:56 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-15 20:45:56 +0000 |
commit | 449208d95b9418306e1250429211e056f9af2940 (patch) | |
tree | 710a82d74d58cdf8a1439d0c7b82f31e9790431d /llvm/lib/Object/ArchiveWriter.cpp | |
parent | 47bfc19f29eb0abda912915432d8b3f9d116882c (diff) | |
download | bcm5719-llvm-449208d95b9418306e1250429211e056f9af2940.tar.gz bcm5719-llvm-449208d95b9418306e1250429211e056f9af2940.zip |
Handle the error of trying to convert a regular archive to a thin one.
While at it, test that we can add to a thin archive.
llvm-svn: 242330
Diffstat (limited to 'llvm/lib/Object/ArchiveWriter.cpp')
-rw-r--r-- | llvm/lib/Object/ArchiveWriter.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp index bcd5382d91e..b555b8cfdcf 100644 --- a/llvm/lib/Object/ArchiveWriter.cpp +++ b/llvm/lib/Object/ArchiveWriter.cpp @@ -318,6 +318,9 @@ llvm::writeArchive(StringRef ArcName, MemberRef = Buffers.back()->getMemBufferRef(); } else { object::Archive::child_iterator OldMember = Member.getOld(); + assert(!Thin || + OldMember->getParent()->isThin() && + "Thin archives cannot refers to member of other archives"); ErrorOr<MemoryBufferRef> MemberBufferOrErr = OldMember->getMemoryBufferRef(); if (auto EC = MemberBufferOrErr.getError()) |