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 95f8e4aa3bfc..e124a9d5b4da 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 42f65049f3bd..d3a6a15268c8 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;