64efc2f54bafb66bbf760ea027d84c4659a395c7
[oota-llvm.git] / test / tools / dsymutil / X86 / submodules.m
1 /* Compile with:
2    cat >modules.modulemap <<EOF
3    module Parent {
4      module Child {
5        header "Child.h"
6      }
7    }
8 EOF
9    clang -D CHILD_H -E -o Child.h submodules.m
10    clang -cc1 -emit-obj -fmodules -fmodule-map-file=modules.modulemap \
11      -fmodule-format=obj -g -dwarf-ext-refs -fmodules-cache-path=. \
12      -fdisable-module-hash submodules.m -o 1.o
13 */
14
15 // RUN: llvm-dsymutil -f -oso-prepend-path=%p/../Inputs/submodules \
16 // RUN:   -y %p/dummy-debug-map.map -o - \
17 // RUN:     | llvm-dwarfdump --debug-dump=info - | FileCheck %s
18
19 // ---------------------------------------------------------------------
20 #ifdef CHILD_H
21 // ---------------------------------------------------------------------
22 // CHECK:            DW_TAG_compile_unit
23 // CHECK-NOT:        DW_TAG
24 // CHECK:              DW_TAG_module
25 // CHECK-NEXT:           DW_AT_name{{.*}}"Parent"
26 // CHECK:                DW_TAG_module
27 // CHECK-NEXT:             DW_AT_name{{.*}}"Child"
28 // CHECK:                  DW_TAG_structure_type
29 // CHECK-NOT:                DW_TAG
30 // CHECK:                    DW_AT_name {{.*}}"PruneMeNot"
31
32 struct PruneMeNot;
33
34 // ---------------------------------------------------------------------
35 #else
36 // ---------------------------------------------------------------------
37
38 @import Parent.Child;
39 int main(int argc, char **argv) { return 0; }
40 #endif