From f6ffec95e343e22e541a848cdbc9cd1573b5afe7 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Wed, 13 Jan 2016 20:26:00 +0000 Subject: [PATCH] dsymutil: Only warn about missing clang modules once. rdar://problem/22269336 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257664 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/tools/dsymutil/Inputs/modules/Foo.pcm | Bin 26060 -> 26060 bytes test/tools/dsymutil/X86/modules-warnings.test | 12 ++++++++++++ tools/dsymutil/DwarfLinker.cpp | 4 +--- 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 test/tools/dsymutil/X86/modules-warnings.test diff --git a/test/tools/dsymutil/Inputs/modules/Foo.pcm b/test/tools/dsymutil/Inputs/modules/Foo.pcm index 4a39a06c24dd94b16cba5c21d94c484df03db7f4..ff6b2ad308b1d661b55174b6270e2d32d83a8f31 100644 GIT binary patch delta 25 hcmX?en(@qO#tpxcxb*a$5{vW-l5-h0vm~Ej0sxa%3JU-L delta 25 hcmX?en(@qO#tpxcxb*e(of3=m3X*d-vm~Ej0sxaY3OWD) diff --git a/test/tools/dsymutil/X86/modules-warnings.test b/test/tools/dsymutil/X86/modules-warnings.test new file mode 100644 index 00000000000..5452cdb7b0b --- /dev/null +++ b/test/tools/dsymutil/X86/modules-warnings.test @@ -0,0 +1,12 @@ +Test for module-related warnings. +This reuses the files from the modules.m testcase. + +RUN: rm -rf %t.dir && mkdir %t.dir +RUN: cp %p/../Inputs/modules/1.o %p/../Inputs/modules/Foo.pcm %t.dir + +RUN: llvm-dsymutil -f -oso-prepend-path=%t.dir -y \ +RUN: %p/dummy-debug-map.map -o %t 2>&1 | FileCheck %s + +Module-not-found should be reported only once. +CHECK: warning: {{.*}}Bar.pcm: No such file or directory +CHECK-NOT: warning: {{.*}}Bar.pcm: No such file or directory diff --git a/tools/dsymutil/DwarfLinker.cpp b/tools/dsymutil/DwarfLinker.cpp index 8c5f7946a42..32ca5c4cecf 100644 --- a/tools/dsymutil/DwarfLinker.cpp +++ b/tools/dsymutil/DwarfLinker.cpp @@ -3237,10 +3237,8 @@ void DwarfLinker::loadClangModule(StringRef Filename, StringRef ModulePath, auto &Obj = ModuleMap.addDebugMapObject(Path, sys::TimeValue::PosixZeroTime()); auto ErrOrObj = loadObject(ObjHolder, Obj, ModuleMap); - if (!ErrOrObj) { - ClangModules.erase(ClangModules.find(Filename)); + if (!ErrOrObj) return; - } std::unique_ptr Unit; -- 2.11.0