[llvm] r246412 - [dsymutil] Do not mistakenly reuse the current object file when the next one isn't found.

Frederic Riss via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 30 22:16:36 PDT 2015


Author: friss
Date: Mon Aug 31 00:16:35 2015
New Revision: 246412

URL: http://llvm.org/viewvc/llvm-project?rev=246412&view=rev
Log:
[dsymutil] Do not mistakenly reuse the current object file when the next one isn't found.

Modified:
    llvm/trunk/test/tools/dsymutil/X86/empty_range.s
    llvm/trunk/tools/dsymutil/DwarfLinker.cpp

Modified: llvm/trunk/test/tools/dsymutil/X86/empty_range.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/empty_range.s?rev=246412&r1=246411&r2=246412&view=diff
==============================================================================
--- llvm/trunk/test/tools/dsymutil/X86/empty_range.s (original)
+++ llvm/trunk/test/tools/dsymutil/X86/empty_range.s Mon Aug 31 00:16:35 2015
@@ -55,3 +55,7 @@ Ldebug_range:
 # CHECK-NEXT:      DW_AT_low_pc{{.*}}(0x0000000000010000)
 # CHECK-NEXT:      DW_AT_ranges{{.*}}(0x00000000)
 
+# There was a bug that would use the currently active object file when a
+# debug map object isn't found. Check that we only linked one file.
+# CHECK-NOT: DW_TAG_compile_unit
+

Modified: llvm/trunk/tools/dsymutil/DwarfLinker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/DwarfLinker.cpp?rev=246412&r1=246411&r2=246412&view=diff
==============================================================================
--- llvm/trunk/tools/dsymutil/DwarfLinker.cpp (original)
+++ llvm/trunk/tools/dsymutil/DwarfLinker.cpp Mon Aug 31 00:16:35 2015
@@ -2942,8 +2942,10 @@ DwarfLinker::loadObject(BinaryHolder &Bi
                         const DebugMap &Map) {
   auto ErrOrObjs =
       BinaryHolder.GetObjectFiles(Obj.getObjectFilename(), Obj.getTimestamp());
-  if (std::error_code EC = ErrOrObjs.getError())
+  if (std::error_code EC = ErrOrObjs.getError()) {
     reportWarning(Twine(Obj.getObjectFilename()) + ": " + EC.message());
+    return EC;
+  }
   auto ErrOrObj = BinaryHolder.Get(Map.getTriple());
   if (std::error_code EC = ErrOrObj.getError())
     reportWarning(Twine(Obj.getObjectFilename()) + ": " + EC.message());




More information about the llvm-commits mailing list