diff options
author | Eric Christopher <echristo@gmail.com> | 2013-10-17 01:31:21 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2013-10-17 01:31:21 +0000 |
commit | 9e6f5f9ac7b77fa1941ee5e3042438e36aad3f5d (patch) | |
tree | 8295db567d5defbcb5955beee009aa1f018e12fc /clang/test/CodeGenCXX/debug-info-function-context.cpp | |
parent | 96eff3f39341934a30ad29635356419883e0d3bf (diff) | |
download | llvm-9e6f5f9ac7b77fa1941ee5e3042438e36aad3f5d.zip llvm-9e6f5f9ac7b77fa1941ee5e3042438e36aad3f5d.tar.gz llvm-9e6f5f9ac7b77fa1941ee5e3042438e36aad3f5d.tar.bz2 |
Add the context that a function was created in as the context for the
function, not the context of the context.
llvm-svn: 192862
Diffstat (limited to 'clang/test/CodeGenCXX/debug-info-function-context.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/debug-info-function-context.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/debug-info-function-context.cpp b/clang/test/CodeGenCXX/debug-info-function-context.cpp new file mode 100644 index 0000000..4ca1c8d --- /dev/null +++ b/clang/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] |