diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-29 22:24:22 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-04-29 22:24:22 +0000 |
commit | 59a0e79631ed851d98cf9c2ba6fa5f9aafdfdc93 (patch) | |
tree | a910559464f8b9b14301d59fcb7948052071b3bd /lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp | |
parent | d8b2da11360419a9f1d569468a9b2a8ca3dace20 (diff) | |
download | llvm-59a0e79631ed851d98cf9c2ba6fa5f9aafdfdc93.tar.gz llvm-59a0e79631ed851d98cf9c2ba6fa5f9aafdfdc93.tar.bz2 llvm-59a0e79631ed851d98cf9c2ba6fa5f9aafdfdc93.tar.xz |
Add getSymbolAlignment to the ObjectFile interface.
For regular object files this is only meaningful for common symbols. An object
file format with direct support for atoms should be able to provide alignment
information for all symbols.
This replaces getCommonSymbolAlignment and fixes
test-common-symbols-alignment.ll on darwin. This also includes a fix to
MachOObjectFile::getSymbolFlags. It was marking undefined symbols as common
(already tested by existing mcjit tests now that it is used).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180736 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp')
-rw-r--r-- | lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp index 354795dc5f..7b32db7f0e 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp @@ -96,7 +96,8 @@ ObjectImage *RuntimeDyldImpl::loadObject(ObjectBuffer *InputBuffer) { bool isCommon = flags & SymbolRef::SF_Common; if (isCommon) { // Add the common symbols to a list. We'll allocate them all below. - uint64_t Align = getCommonSymbolAlignment(*i); + uint32_t Align; + Check(i->getAlignment(Align)); uint64_t Size = 0; Check(i->getSize(Size)); CommonSize += Size + Align; |