summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools')
-rw-r--r--llvm/test/tools/dsymutil/Inputs/modules/1.obin0 -> 2392 bytes
-rw-r--r--llvm/test/tools/dsymutil/Inputs/modules/Bar.pcmbin0 -> 25520 bytes
-rw-r--r--llvm/test/tools/dsymutil/Inputs/modules/Foo.pcmbin0 -> 25448 bytes
-rw-r--r--llvm/test/tools/dsymutil/X86/lit.local.cfg2
-rw-r--r--llvm/test/tools/dsymutil/X86/modules.m62
5 files changed, 63 insertions, 1 deletions
diff --git a/llvm/test/tools/dsymutil/Inputs/modules/1.o b/llvm/test/tools/dsymutil/Inputs/modules/1.o
new file mode 100644
index 00000000000..6e0775f5755
--- /dev/null
+++ b/llvm/test/tools/dsymutil/Inputs/modules/1.o
Binary files differ
diff --git a/llvm/test/tools/dsymutil/Inputs/modules/Bar.pcm b/llvm/test/tools/dsymutil/Inputs/modules/Bar.pcm
new file mode 100644
index 00000000000..8b628e3cf01
--- /dev/null
+++ b/llvm/test/tools/dsymutil/Inputs/modules/Bar.pcm
Binary files differ
diff --git a/llvm/test/tools/dsymutil/Inputs/modules/Foo.pcm b/llvm/test/tools/dsymutil/Inputs/modules/Foo.pcm
new file mode 100644
index 00000000000..2416a405443
--- /dev/null
+++ b/llvm/test/tools/dsymutil/Inputs/modules/Foo.pcm
Binary files differ
diff --git a/llvm/test/tools/dsymutil/X86/lit.local.cfg b/llvm/test/tools/dsymutil/X86/lit.local.cfg
index ed9eba0b0d9..05f8b38b334 100644
--- a/llvm/test/tools/dsymutil/X86/lit.local.cfg
+++ b/llvm/test/tools/dsymutil/X86/lit.local.cfg
@@ -1,4 +1,4 @@
if not 'X86' in config.root.targets:
config.unsupported = True
-config.suffixes = ['.test', '.cpp', '.s']
+config.suffixes = ['.test', '.cpp', '.m', '.s']
diff --git a/llvm/test/tools/dsymutil/X86/modules.m b/llvm/test/tools/dsymutil/X86/modules.m
new file mode 100644
index 00000000000..6a93f28587a
--- /dev/null
+++ b/llvm/test/tools/dsymutil/X86/modules.m
@@ -0,0 +1,62 @@
+/* Compile with:
+ cat >modules.modulemap <<EOF
+ module Foo {
+ header "Foo.h"
+ export *
+ }
+ module Bar {
+ header "Bar.h"
+ export *
+ }
+ EOF
+ clang -D BAR_H -E -o Bar.h
+ clang -D FOO_H -E -o Foo.h
+ clang -cc1 -emit-obj -fmodules -fmodule-map-file=modules.modulemap \
+ -fmodule-format=obj -g -dwarf-ext-refs -fmodules-cache-path=. \
+ -fdisable-module-hash modules.m -o 1.o
+*/
+
+// RUN: llvm-dsymutil -f -oso-prepend-path=%p/../Inputs/modules \
+// RUN: -y %p/dummy-debug-map.map -o - \
+// RUN: | llvm-dwarfdump --debug-dump=info - | FileCheck %s
+
+// ---------------------------------------------------------------------
+#ifdef BAR_H
+// ---------------------------------------------------------------------
+// CHECK: DW_TAG_compile_unit
+// CHECK: DW_TAG_module
+// CHECK-NEXT: DW_AT_name {{.*}}"Bar"
+// CHECK: DW_TAG_member
+// CHECK: DW_AT_name {{.*}}"value"
+
+struct Bar {
+ int value;
+};
+
+#else
+// ---------------------------------------------------------------------
+#ifdef FOO_H
+// ---------------------------------------------------------------------
+// CHECK: 55{{.*}}DW_TAG_compile_unit
+// CHECK: DW_TAG_module
+// CHECK-NEXT: DW_AT_name {{.*}}"Foo"
+// CHECK: DW_TAG_typedef
+@import Bar;
+typedef struct Bar Bar;
+struct S {};
+
+// ---------------------------------------------------------------------
+#else
+// ---------------------------------------------------------------------
+
+// CHECK: DW_TAG_compile_unit
+// CHECK: DW_TAG_subprogram
+// CHECK: DW_AT_name {{.*}}"main"
+@import Foo;
+int main(int argc, char **argv) {
+ Bar bar;
+ bar.value = 42;
+ return bar.value;
+}
+#endif
+#endif
OpenPOWER on IntegriCloud