[llvm] r311416 - dsymutil: don't copy compile units without children from PCM files
Adrian Prantl via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 21 18:10:48 PDT 2017
Author: adrian
Date: Mon Aug 21 18:10:48 2017
New Revision: 311416
URL: http://llvm.org/viewvc/llvm-project?rev=311416&view=rev
Log:
dsymutil: don't copy compile units without children from PCM files
rdar://problem/33830532
Added:
llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/
llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/1.o
llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/Empty.pcm
llvm/trunk/test/tools/dsymutil/X86/modules-empty.m
Modified:
llvm/trunk/tools/dsymutil/DwarfLinker.cpp
Added: llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/1.o
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/1.o?rev=311416&view=auto
==============================================================================
Binary files llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/1.o (added) and llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/1.o Mon Aug 21 18:10:48 2017 differ
Added: llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/Empty.pcm
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/Empty.pcm?rev=311416&view=auto
==============================================================================
Binary files llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/Empty.pcm (added) and llvm/trunk/test/tools/dsymutil/Inputs/modules-empty/Empty.pcm Mon Aug 21 18:10:48 2017 differ
Added: llvm/trunk/test/tools/dsymutil/X86/modules-empty.m
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/modules-empty.m?rev=311416&view=auto
==============================================================================
--- llvm/trunk/test/tools/dsymutil/X86/modules-empty.m (added)
+++ llvm/trunk/test/tools/dsymutil/X86/modules-empty.m Mon Aug 21 18:10:48 2017
@@ -0,0 +1,28 @@
+/* Compile with:
+ cat >modules.modulemap <<EOF
+ module Empty {
+ header "Empty.h"
+ }
+EOF
+ touch Empty.h
+ clang -c -fmodules -fmodule-map-file=modules.modulemap \
+ -g -gmodules -fmodules-cache-path=. \
+ -Xclang -fdisable-module-hash modules-empty.m -o 1.o
+*/
+
+// RUN: rm -rf %t.dir
+// RUN: mkdir %t.dir
+// RUN: cp %p/../Inputs/modules-empty/1.o %p/../Inputs/modules-empty/Empty.pcm %t.dir
+// RUN: llvm-dsymutil -f -oso-prepend-path=%t.dir \
+// RUN: -y %p/dummy-debug-map.map -o - \
+// RUN: | llvm-dwarfdump --debug-dump=info - | FileCheck %s
+
+#include "Empty.h"
+int main() {
+ return 0;
+}
+
+// The empty CU from the pcm should not get copied into the dSYM.
+// CHECK: DW_TAG_compile_unit
+// 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=311416&r1=311415&r2=311416&view=diff
==============================================================================
--- llvm/trunk/tools/dsymutil/DwarfLinker.cpp (original)
+++ llvm/trunk/tools/dsymutil/DwarfLinker.cpp Mon Aug 21 18:10:48 2017
@@ -3358,6 +3358,8 @@ void DwarfLinker::loadClangModule(String
Unit->markEverythingAsKept();
}
}
+ if (!Unit->getOrigUnit().getUnitDIE().hasChildren())
+ return;
if (Options.Verbose) {
outs().indent(Indent);
outs() << "cloning .debug_info from " << Filename << "\n";
More information about the llvm-commits
mailing list