[llvm] r329553 - [dsymutil] Don't try to load Swift ASTs as objects.

Jonas Devlieghere via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 9 02:10:00 PDT 2018


Author: jdevlieghere
Date: Mon Apr  9 02:09:59 2018
New Revision: 329553

URL: http://llvm.org/viewvc/llvm-project?rev=329553&view=rev
Log:
[dsymutil] Don't try to load Swift ASTs as objects.

With the threading refactoring, loading of object files happens before
checking whether we're dealing with a swift AST. While that's not an
issue per se, it causes a warning to be printed:

  warning: /path/to/a.swiftmodule: The file was not recognized as a valid object file
  note: while processing /path/to/a.swiftmodule

This suppresses the warning by checking for a Swift AST before
attempting to load is as an object file.

rdar://39240444

Modified:
    llvm/trunk/test/tools/dsymutil/X86/swift-ast-x86_64.test
    llvm/trunk/tools/dsymutil/DwarfLinker.cpp

Modified: llvm/trunk/test/tools/dsymutil/X86/swift-ast-x86_64.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/swift-ast-x86_64.test?rev=329553&r1=329552&r2=329553&view=diff
==============================================================================
--- llvm/trunk/test/tools/dsymutil/X86/swift-ast-x86_64.test (original)
+++ llvm/trunk/test/tools/dsymutil/X86/swift-ast-x86_64.test Mon Apr  9 02:09:59 2018
@@ -9,6 +9,7 @@ Compiled with:
   ld swift-ast.o -add_ast_path Inputs/swift-ast.swiftmodule -arch x86_64 -lSystem -macosx_version_min 10.9.0
 
 DSYMUTIL: filename:{{.*}}swift-ast.swiftmodule
+DSYMUTIL-NOT: The file was not recognized as a valid object file
 DSYMUTIL: DEBUG MAP OBJECT:{{.*}}swift-ast.swiftmodule
 
 READOBJ: Name:{{.*}}__swift_ast

Modified: llvm/trunk/tools/dsymutil/DwarfLinker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/DwarfLinker.cpp?rev=329553&r1=329552&r2=329553&view=diff
==============================================================================
--- llvm/trunk/tools/dsymutil/DwarfLinker.cpp (original)
+++ llvm/trunk/tools/dsymutil/DwarfLinker.cpp Mon Apr  9 02:09:59 2018
@@ -1562,6 +1562,11 @@ private:
     LinkContext(const DebugMap &Map, DwarfLinker &Linker, DebugMapObject &DMO,
                 bool Verbose = false)
         : DMO(DMO), BinHolder(Verbose), RelocMgr(Linker) {
+      // Swift ASTs are not object files.
+      if (DMO.getType() == MachO::N_AST) {
+        ObjectFile = nullptr;
+        return;
+      }
       auto ErrOrObj = Linker.loadObject(BinHolder, DMO, Map);
       ObjectFile = ErrOrObj ? &*ErrOrObj : nullptr;
       DwarfContext = ObjectFile ? DWARFContext::create(*ObjectFile) : nullptr;




More information about the llvm-commits mailing list