From: Jonas Devlieghere Date: Mon, 9 Apr 2018 09:09:59 +0000 (+0000) Subject: [dsymutil] Don't try to load Swift ASTs as objects. X-Git-Tag: llvmorg-7.0.0-rc1~8658 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=79766820a3ba2e792593ee89d26225bf686f7440;p=platform%2Fupstream%2Fllvm.git [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 llvm-svn: 329553 --- diff --git a/llvm/test/tools/dsymutil/X86/swift-ast-x86_64.test b/llvm/test/tools/dsymutil/X86/swift-ast-x86_64.test index 95f8e4a..e124a9d 100644 --- a/llvm/test/tools/dsymutil/X86/swift-ast-x86_64.test +++ b/llvm/test/tools/dsymutil/X86/swift-ast-x86_64.test @@ -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 diff --git a/llvm/tools/dsymutil/DwarfLinker.cpp b/llvm/tools/dsymutil/DwarfLinker.cpp index 42f6504..d3a6a15 100644 --- a/llvm/tools/dsymutil/DwarfLinker.cpp +++ b/llvm/tools/dsymutil/DwarfLinker.cpp @@ -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;