From 952eddef9aff85b1e92626e89baaf7a360e2ac85 Mon Sep 17 00:00:00 2001 From: dim <dim@FreeBSD.org> Date: Sun, 22 Dec 2013 00:07:40 +0000 Subject: Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3): https://llvm.org/svn/llvm-project/cfe/branches/release_34@197841 --- test/CodeGenCXX/debug-info-function-context.cpp | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 test/CodeGenCXX/debug-info-function-context.cpp (limited to 'test/CodeGenCXX/debug-info-function-context.cpp') diff --git a/test/CodeGenCXX/debug-info-function-context.cpp b/test/CodeGenCXX/debug-info-function-context.cpp new file mode 100644 index 0000000..4ca1c8d --- /dev/null +++ b/test/CodeGenCXX/debug-info-function-context.cpp @@ -0,0 +1,36 @@ +// RUN: %clang_cc1 -emit-llvm -g -triple x86_64-pc-linux-gnu %s -o - | FileCheck %s + +struct C { + void member_function(); + static int static_member_function(); + static int static_member_variable; +}; + +int C::static_member_variable = 0; + +void C::member_function() { static_member_variable = 0; } + +int C::static_member_function() { return static_member_variable; } + +C global_variable; + +int global_function() { return -1; } + +namespace ns { +void global_namespace_function() { global_variable.member_function(); } +int global_namespace_variable = 1; +} + +// Check that the functions that belong to C have C as a context and the +// functions that belong to the namespace have it as a context, and the global +// function has the file as a context. + +// CHECK: metadata !"_ZTS1C", metadata !"member_function"{{.*}} [ DW_TAG_subprogram ] [line 11] [def] [member_function] + +// CHECK: metadata !"_ZTS1C", metadata !"static_member_function"{{.*}} [ DW_TAG_subprogram ] [line 13] [def] [static_member_function] + +// CHECK: metadata !22, metadata !"global_function"{{.*}} [ DW_TAG_subprogram ] [line 17] [def] [global_function] +// CHECK: !22 = {{.*}} [ DW_TAG_file_type ] + +// CHECK: metadata !24, metadata !"global_namespace_function"{{.*}} [ DW_TAG_subprogram ] [line 20] [def] [global_namespace_function] +// CHECK: !24 = {{.*}} [ DW_TAG_namespace ] [ns] [line 19] -- cgit v1.1