OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [debug/] [dwarf2/] [nested-3.C] - Blame information for rev 693

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 693 jeremybenn
// Origin: PR debug/45682
2
// { dg-options "-g -fno-merge-debug-strings -gdwarf-4 -dA -fdebug-types-section" }
3
 
4
namespace thread {
5
 
6
class Executor {
7
 public:
8
  static Executor* CurrentExecutor();
9
};
10
 
11
}
12
 
13
namespace thread {
14
 
15
Executor* Executor::CurrentExecutor() {
16
  return 0;
17
}
18
 
19
}
20
 
21
thread::Executor *te;
22
 
23
int
24
main ()
25
{
26
    return 0;
27
}
28
 
29
// We want to express the fact that the DIE for the definition of
30
// 'Executor::CurrentExecutor' is a grand-child of the DIE for the
31
// namespace 'thread'.  We must have something like this output:
32
//      .uleb128 0x8    # (DIE (0x29) DW_TAG_namespace)
33
//      .ascii "thread\0"       # DW_AT_name
34
//      .byte   0x1     # DW_AT_decl_file (.../testsuite/g++.dg/debug/dwarf2/nested-3.C)
35
//      .byte   0x4     # DW_AT_decl_line
36
//      .long   0x4b    # DW_AT_sibling
37
//      .uleb128 0x9    # (DIE (0x34) DW_TAG_class_type)
38
//      .long   .LASF0  # DW_AT_name: "Executor"
39
//                      # DW_AT_declaration
40
//      .uleb128 0x5    # (DIE (0x39) DW_TAG_subprogram)
41
//                      # DW_AT_external
42
//      .long   .LASF1  # DW_AT_name: "CurrentExecutor"
43
//      .byte   0x1     # DW_AT_decl_file (.../testsuite/g++.dg/debug/dwarf2/nested-3.C)
44
//      .byte   0x8     # DW_AT_decl_line
45
//      .long   .LASF2  # DW_AT_linkage_name: "_ZN6thread8Executor15CurrentExecutorEv"
46
//      .long   0x4b    # DW_AT_type
47
//      .byte   0x1     # DW_AT_accessibility
48
//                      # DW_AT_declaration
49
//      .byte   0       # end of children of DIE 0x34
50
//      .byte   0       # end of children of DIE 0x29
51
//
52
//     Hence the scary regexp:
53
//
54
//     { dg-final { scan-assembler "\[^\n\r\]*\\(DIE \\(0x(\[0-9a-f\]+)\\) DW_TAG_namespace\\)\[\n\r\]+\[^\n\r\]*\"thread\[\^\n\r]+\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*\\(DIE \\(0x(\[0-9a-f\]+)\\) DW_TAG_class_type\\)(\[\n\r\]+\[^\n\r\]*)+\"Executor\[^\n\r\]+\[\n\r\]+\[^\n\r\]*DW_AT_declaration\[\n\r\]+\[^\n\r\]*\\(DIE\[^\n\r\]*DW_TAG_subprogram\\)\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*\"CurrentExecutor\[^\n\r\]+\[\n\r\]+(\[^\n\r\]*\[\n\r\]+)+(\[^\n\r\]*\[\n\r\]+)+\[^\n\r\]*end of children of DIE 0x\\3\[\n\r]+\[^\n\r\]*end of children of DIE 0x\\1\[\n\r]+" } }

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.