From 2bf9b4c0d18dd03d967f3fd5bb6b5d156b1ed3a7 Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Tue, 20 Oct 2015 04:24:12 +0000 Subject: [DEBUG INFO] Emit debug info for type used in explicit cast only. Currently debug info for types used in explicit cast only is not emitted. It happened after a patch for better alignment handling. This patch fixes this bug. Differential Revision: http://reviews.llvm.org/D13582 llvm-svn: 250795 --- clang/test/CodeGenCXX/debug-info-explicit-cast.cpp | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 clang/test/CodeGenCXX/debug-info-explicit-cast.cpp (limited to 'clang/test/CodeGenCXX') diff --git a/clang/test/CodeGenCXX/debug-info-explicit-cast.cpp b/clang/test/CodeGenCXX/debug-info-explicit-cast.cpp new file mode 100644 index 00000000000..028a7760d8b --- /dev/null +++ b/clang/test/CodeGenCXX/debug-info-explicit-cast.cpp @@ -0,0 +1,46 @@ +// RUN: %clangxx -c -target %itanium_abi_triple -g %s -emit-llvm -S -o - | FileCheck %s +// RUN: %clangxx -c -target %ms_abi_triple -g %s -emit-llvm -S -o - | FileCheck %s + +struct Foo { + int A; + Foo() : A(1){}; +}; + +struct Bar { + int B; + Bar() : B(2){}; +}; + +struct Baz { + int C; + Baz() : C(3){}; +}; + +struct Qux { + int d() { return 4; } + Qux() {}; +}; + +struct Quux { + int E; + Quux() : E(5){}; +}; + +typedef int(Qux::*TD)(); +typedef int(Qux::*TD1)(); +int Val = reinterpret_cast(0)->C; +int main() { + Bar *PB = new Bar; + TD d = &Qux::d; + (void)reinterpret_cast(d); + + return reinterpret_cast(PB)->A + reinterpret_cast(0)->E; +} + +// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "Foo", +// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "Bar", +// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "Baz", +// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "Qux", +// CHECK-DAG: !DICompositeType(tag: DW_TAG_structure_type, name: "Quux", +// CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "TD", +// CHECK-DAG: !DIDerivedType(tag: DW_TAG_typedef, name: "TD1", -- cgit v1.2.3