From 45b533945f0851ec234ca846e1af5ee1e4df0b6e Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Wed, 30 Dec 2015 11:49:41 +0000 Subject: Vendor import of clang trunk r256633: https://llvm.org/svn/llvm-project/cfe/trunk@256633 --- test/CodeGenCXX/debug-info-explicit-cast.cpp | 46 ++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/CodeGenCXX/debug-info-explicit-cast.cpp (limited to 'test/CodeGenCXX/debug-info-explicit-cast.cpp') diff --git a/test/CodeGenCXX/debug-info-explicit-cast.cpp b/test/CodeGenCXX/debug-info-explicit-cast.cpp new file mode 100644 index 000000000000..028a7760d8b9 --- /dev/null +++ b/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.3