From 2b25450061e38710dbf531d4a1e7d30c776fd1fd Mon Sep 17 00:00:00 2001 From: Renato Golin Date: Wed, 24 Sep 2014 20:07:22 +0000 Subject: Refactor the RelocVisitor::visit method This change replaces the brittle if/else chain of string comparisons with a switch statement on the detected target triple, removing the need for testing arbitrary architecture names returned from getFileFormatName, whose primary purpose seems to be for display (user-interface) purposes. The visitor now takes a reference to the object file, rather than its arbitrary file format name to figure out whether the file is a 32 or 64-bit object file and what the detected target triple is. A set of tests have been added to help show that the refactoring processes relocations for the same targets as the original code. Patch by Charlie Turner. llvm-svn: 218406 --- llvm/lib/DebugInfo/DWARFContext.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'llvm/lib/DebugInfo/DWARFContext.cpp') diff --git a/llvm/lib/DebugInfo/DWARFContext.cpp b/llvm/lib/DebugInfo/DWARFContext.cpp index 1be0691a1d9..39e6f4665b2 100644 --- a/llvm/lib/DebugInfo/DWARFContext.cpp +++ b/llvm/lib/DebugInfo/DWARFContext.cpp @@ -667,7 +667,7 @@ DWARFContextInMemory::DWARFContextInMemory(object::ObjectFile &Obj) Sym->getAddress(SymAddr); } - object::RelocVisitor V(Obj.getFileFormatName()); + object::RelocVisitor V(Obj); // The section address is always 0 for debug sections. object::RelocToApply R(V.visit(Type, Reloc, 0, SymAddr)); if (V.error()) { -- cgit v1.2.3