Make 32-bit member offset in Archive::Symbol::getMember 64-bit
authorJake Ehrlich <jakehehrlich@google.com>
Fri, 27 Oct 2017 21:47:38 +0000 (21:47 +0000)
committerJake Ehrlich <jakehehrlich@google.com>
Fri, 27 Oct 2017 21:47:38 +0000 (21:47 +0000)
commit9a8a8159d342dc1f5430ff4139c25ad2228111f5
treea594ebd1c58698a30a4aacb3115fe81ddcc60ab9
parent6861d89ae55833b7e20c74917e1a7b05afc9e01f
Make 32-bit member offset in Archive::Symbol::getMember 64-bit

When accessing a member for a symbol with an offset greater than 2^32 -
1 the current Archive::Symbol::getMember implementation will overflow
and cause unexpected behavior. This change simply fixes that. In
particular if you call "llvm-nm --print-armap" on an archive that has
this behavior you'll get an error.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316801 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Object/Archive.cpp