Check section type rather than assuming it's code when emitting sections while proces...
authorAndrew Kaylor <andrew.kaylor@intel.com>
Fri, 12 Oct 2012 23:53:16 +0000 (23:53 +0000)
committerAndrew Kaylor <andrew.kaylor@intel.com>
Fri, 12 Oct 2012 23:53:16 +0000 (23:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165854 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

index 414957c356e48528dae3d7638097d5e11b9812fc..08aba64e460ab96a6945c1cc541489138e74809d 100644 (file)
@@ -413,7 +413,13 @@ void RuntimeDyldELF::processRelocationRef(const ObjRelocationInfo &Rel,
           if (si == Obj.end_sections())
             llvm_unreachable("Symbol section not found, bad object file format!");
           DEBUG(dbgs() << "\t\tThis is section symbol\n");
-          Value.SectionID = findOrEmitSection(Obj, (*si), true, ObjSectionToID);
+          // Default to 'true' in case isText fails (though it never does).
+          bool isCode = true;
+          si->isText(isCode);
+          Value.SectionID = findOrEmitSection(Obj, 
+                                              (*si), 
+                                              isCode, 
+                                              ObjSectionToID);
           Value.Addend = Addend;
           break;
         }