diff options
Diffstat (limited to 'test/CodeGenCXX/debug-info-access.cpp')
-rw-r--r-- | test/CodeGenCXX/debug-info-access.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/CodeGenCXX/debug-info-access.cpp b/test/CodeGenCXX/debug-info-access.cpp new file mode 100644 index 0000000..d6dfd87 --- /dev/null +++ b/test/CodeGenCXX/debug-info-access.cpp @@ -0,0 +1,39 @@ +// RUN: %clang_cc1 -emit-llvm -g -triple %itanium_abi_triple %s -o - | FileCheck %s +// Test the various accessibility flags in the debug info. +struct A { + // CHECK-DAG: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [pub_default] + void pub_default(); + // CHECK-DAG: [ DW_TAG_member ] [pub_default_static] [line [[@LINE+1]]{{.*}}offset 0] [static] + static int pub_default_static; +}; + +// CHECK: [ DW_TAG_inheritance ] {{.*}} [public] [from {{.*}}A] +class B : public A { +public: + // CHECK-DAG: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [public] [pub] + void pub(); + // CHECK-DAG: [ DW_TAG_member ] [public_static] [line [[@LINE+1]]{{.*}} [public] [static] + static int public_static; +protected: + // CHECK: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [protected] [prot] + void prot(); +private: + // CHECK: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [priv_default] + void priv_default(); +}; + +union U { + // CHECK-DAG: [ DW_TAG_subprogram ] [line [[@LINE+1]]] [union_pub_default] + void union_pub_default(); +private: + // CHECK-DAG: [ DW_TAG_member ] [union_priv] [line [[@LINE+1]]{{.*}} [private] + int union_priv; +}; + + +// CHECK: {{.*}}\00256\00{{.*}} ; [ DW_TAG_subprogram ] [line [[@LINE+1]]] [def] [free] +void free() {} + +A a; +B b; +U u; |