diff options
Diffstat (limited to 'clang/test')
4 files changed, 33 insertions, 0 deletions
diff --git a/clang/test/Modules/DebugInfoNamespace.cpp b/clang/test/Modules/DebugInfoNamespace.cpp new file mode 100644 index 00000000000..33add085d8a --- /dev/null +++ b/clang/test/Modules/DebugInfoNamespace.cpp @@ -0,0 +1,19 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -x objective-c++ -std=c++11 -debug-info-kind=standalone \ +// RUN: -dwarf-ext-refs -fmodules \ +// RUN: -fmodule-format=obj -fimplicit-module-maps \ +// RUN: -triple %itanium_abi_triple -fmodules-cache-path=%t \ +// RUN: %s -I %S/Inputs/DebugInfoNamespace -I %t -emit-llvm -o - \ +// RUN: | FileCheck %s + +#include "A.h" +#include "B.h" +using namespace N; +B b; + +// Verify that the forward decl of B is in module B. +// +// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "B", +// CHECK-SAME: scope: ![[N:[0-9]+]] +// CHECK: ![[N]] = !DINamespace(name: "N", scope: ![[B:[0-9]+]]) +// CHECK: ![[B]] = !DIModule(scope: null, name: "B", diff --git a/clang/test/Modules/Inputs/DebugInfoNamespace/A.h b/clang/test/Modules/Inputs/DebugInfoNamespace/A.h new file mode 100644 index 00000000000..dc5a1cd26ab --- /dev/null +++ b/clang/test/Modules/Inputs/DebugInfoNamespace/A.h @@ -0,0 +1,3 @@ +namespace N { + struct A {}; +} diff --git a/clang/test/Modules/Inputs/DebugInfoNamespace/B.h b/clang/test/Modules/Inputs/DebugInfoNamespace/B.h new file mode 100644 index 00000000000..c9033a54d4e --- /dev/null +++ b/clang/test/Modules/Inputs/DebugInfoNamespace/B.h @@ -0,0 +1,3 @@ +namespace N { + struct B {}; +} diff --git a/clang/test/Modules/Inputs/DebugInfoNamespace/module.modulemap b/clang/test/Modules/Inputs/DebugInfoNamespace/module.modulemap new file mode 100644 index 00000000000..9300fcf98c6 --- /dev/null +++ b/clang/test/Modules/Inputs/DebugInfoNamespace/module.modulemap @@ -0,0 +1,8 @@ +module A { + header "A.h" + export * +} +module B { + header "B.h" + export * +} |