summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/debug/dwarf2/typedef6.C
blob: 8896446a7ed5d0ef4e2ad8824823706c5ca14fba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Origin PR debug/
// { dg-options "-g -dA" }

class C {
public:
  C() {}
  ~C() {}
};
typedef struct {
  C m;
} t;
typedef t s;
s v;

/*
  We want to check that we have a DIE describing the typedef t like this:

	.uleb128 0xc	# (DIE (0xb8) DW_TAG_typedef)
	.ascii "t\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (../../prtests/test.cc)
	.byte	0xb	# DW_AT_decl_line
	.long	0x78	# DW_AT_type

  e.g, it should not haven any child DIE -- the bug here was that this
  DIE had children DIEs. So we check that the last line is immediately
  followed by a line containing the pattern "(DIE (", instead of a
  line containing a DW_AT_sibling attribute.
 */

// { dg-final { scan-assembler-times "\[^\n\r\]*\\(DIE \[^\n\r\]* DW_TAG_typedef\\)\[\n\r\]{1,2}\[^\n\r\].*\"t\\\\0\"\[^\n\r\]*DW_AT_name\[\n\r\]{1,2}\[^\n\r\]*\[\n\r\]{1,2}\[^\n\r\]*\[\n\r\]{1,2}\[^\n\r\]*DW_AT_type\[\n\r\]{1,2}\[^\n\r\]*\\(DIE" 1 } }