aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ObjectFile.cpp
AgeCommit message (Collapse)AuthorFilesLines
2013-07-24Delete the buffer in createObjectFile if it fails.Rafael Espindola1-1/+4
The Binary constructor takes ownership of the memory buffer. This is a fairly unfortunate interface, but for now make createObjectFile consistent with it by also deleting the buffer if it fails. Fixes a leak in llvm-ar found by the valgrind bots. llvm-svn: 187039
2013-06-18Basic support for parsing Mach-O universal binaries in LLVMObject libraryAlexey Samsonov1-0/+1
llvm-svn: 184191
2013-06-11Fix variable name style. Don't cast to and from int.Rafael Espindola1-0/+2
This enables the compiler to see the enum and produce warnings about a switch not being fully covered. Fix one of these warnings. llvm-svn: 183749
2013-06-11Convert another use of sys::identifyFileType.Rafael Espindola1-25/+26
No functionality change. llvm-svn: 183747
2013-06-10Pass a StringRef to sys::identifyFileType.Rafael Espindola1-2/+1
llvm-svn: 183669
2013-05-30Change how we iterate over relocations on ELF.Rafael Espindola1-0/+4
For COFF and MachO, sections semantically have relocations that apply to them. That is not the case on ELF. In relocatable objects (.o), a section with relocations in ELF has offsets to another section where the relocations should be applied. In dynamic objects and executables, relocations don't have an offset, they have a virtual address. The section sh_info may or may not point to another section, but that is not actually used for resolving the relocations. This patch exposes that in the ObjectFile API. It has the following advantages: * Most (all?) clients can handle this more efficiently. They will normally walk all relocations, so doing an effort to iterate in a particular order doesn't save time. * llvm-readobj now prints relocations in the same way the native readelf does. * probably most important, relocations that don't point to any section are now visible. This is the case of relocations in the rela.dyn section. See the updated relocation-executable.test for example. llvm-svn: 182908
2013-04-29Add getSymbolAlignment to the ObjectFile interface.Rafael Espindola1-0/+6
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). llvm-svn: 180736
2013-04-07Remove unused argument.Rafael Espindola1-1/+1
llvm-svn: 178987
2013-01-25When encountering an unknown file format, ObjectFile::createObjectFile shouldEli Bendersky1-1/+3
politely report it instead of running into llvm_unreachable. Also patch llvm-dwarfdump to actually check whether the file it's attempting to dump is a valid object file. llvm-svn: 173489
2011-12-25Remove unused variables.Rafael Espindola1-1/+1
llvm-svn: 147261
2011-12-20Unweaken vtables as per ↵David Blaikie1-0/+2
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
2011-09-14ObjectFile: Add support for mach-o-style dSYM companion files.Benjamin Kramer1-0/+1
llvm-svn: 139676
2011-06-25Make Binary the parent of ObjectFile and update children to new interface.Michael J. Spencer1-12/+2
llvm-svn: 133870
2011-06-13Revert the last two commits in the series. r132911, r132912.Michael J. Spencer1-2/+12
llvm-svn: 132913
2011-06-13Make Binary the parent of ObjectFile and update children to new interface.Michael J. Spencer1-12/+2
llvm-svn: 132911
2011-04-22Hook in mach-o object files into Object interface.Eric Christopher1-1/+1
llvm-svn: 129976
2011-01-20Object: Add ELF support.Michael J. Spencer1-1/+1
llvm-svn: 123896
2011-01-20Object: Add COFF Support.Michael J. Spencer1-1/+1
llvm-svn: 123895
2010-12-16MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> ↵Michael J. Spencer1-2/+5
via an out parm. llvm-svn: 121958
2010-12-09Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with ↵Michael J. Spencer1-1/+3
error_code &ec. And fix clients. llvm-svn: 121379
2010-11-29Merge System into Support.Michael J. Spencer1-1/+1
llvm-svn: 120298
2010-11-17Fix typo: Exectuable -> ExecutablePeter Collingbourne1-1/+1
llvm-svn: 119433
2010-11-16Object: Get rid of sys::Path, Triple, and cleanup namespace.Michael J. Spencer1-7/+5
llvm-svn: 119309
2010-11-15Add LLVMObject Library.Michael J. Spencer1-0/+68
llvm-svn: 119107