1 // Test C++ -gmodules debug info in the PCMs with local submodule visibility.
2 // REQUIRES: asserts
3 // RUN: rm -rf %t
4 // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++14 \
5 // RUN:   -fmodules-local-submodule-visibility %s \
6 // RUN:   -dwarf-ext-refs -fmodule-format=obj -debug-info-kind=standalone \
7 // RUN:   -dwarf-version=4 -fmodules -fimplicit-module-maps \
8 // RUN:   -fmodules-cache-path="%t" -o %t.ll -I%S/Inputs/lsv-debuginfo \
9 // RUN:   -mllvm -debug-only=pchcontainer &>%t-mod.ll
10 // RUN: cat %t-mod.ll | FileCheck %s
11 
12 // RUN: rm -rf %t
13 // RUN: %clang_cc1 -triple %itanium_abi_triple -std=c++14 \
14 // RUN:   -fmodules-local-submodule-visibility %s \
15 // RUN:   -dwarf-ext-refs -fmodule-format=obj -debug-info-kind=standalone \
16 // RUN:   -dwarf-version=4 -fmodules -fimplicit-module-maps \
17 // RUN:   -fmodules-cache-path="%t" -o %t.ll -I%S/Inputs/lsv-debuginfo \
18 // RUN:   -DWITH_NAMESPACE \
19 // RUN:   -mllvm -debug-only=pchcontainer &>%t-mod.ll
20 // RUN: cat %t-mod.ll | FileCheck %s
21 
22 // ADT
23 // CHECK: @__clang_ast =
24 
25 // B
26 // CHECK: @__clang_ast =
27 
28 // This type isn't anchored anywhere, expect a full definition.
29 // CHECK: !DICompositeType({{.*}}, name: "AlignedCharArray<4, 16>",
30 // CHECK-SAME:             elements:
31 
32 // C
33 // CHECK: @__clang_ast =
34 
35 // Here, too.
36 // CHECK: !DICompositeType({{.*}}, name: "AlignedCharArray<4, 16>",
37 // CHECK-SAME:             elements:
38 
39 #include <B/B.h>
40