Filipe Cabecinhas | 090a237 | 2014-10-18 23:47:59 +0000 | [diff] [blame] | 1 | // RUN: %clangxx %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o |
2 | // RUN: %clangxx %target_itanium_abi_host_triple %t.o -o %t.out | ||||
Zachary Turner | 79708b5 | 2017-11-21 01:20:28 +0000 | [diff] [blame] | 3 | // RUN: %test_debuginfo %s %t.out |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 4 | // Radar 8775834 |
David Blaikie | 86feadc | 2013-06-19 22:07:11 +0000 | [diff] [blame] | 5 | // DEBUGGER: break 62 |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 6 | // DEBUGGER: r |
7 | // DEBUGGER: p a | ||||
Adrian Prantl | 11f0d2c | 2014-02-27 00:02:40 +0000 | [diff] [blame] | 8 | // CHECK: ${{[0-9]+}} = |
Adrian Prantl | 888e023e | 2013-09-06 18:10:44 +0000 | [diff] [blame] | 9 | // LLDB does not print artificial members. |
Adrian Prantl | d913c86 | 2013-09-18 23:01:54 +0000 | [diff] [blame] | 10 | // CHECK: {{(_vptr\$A =)?.*}}m_int = 12 |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 11 | |
12 | class A | ||||
13 | { | ||||
14 | public: | ||||
15 | A (int i=0); | ||||
16 | A (const A& rhs); | ||||
17 | const A& | ||||
18 | operator= (const A& rhs); | ||||
19 | virtual ~A() {} | ||||
20 | |||||
21 | int get_int(); | ||||
22 | |||||
23 | protected: | ||||
24 | int m_int; | ||||
25 | }; | ||||
26 | |||||
Zachary Turner | 79708b5 | 2017-11-21 01:20:28 +0000 | [diff] [blame] | 27 | A::A (int i) : |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 28 | m_int(i) |
29 | { | ||||
30 | } | ||||
31 | |||||
32 | A::A (const A& rhs) : | ||||
33 | m_int (rhs.m_int) | ||||
34 | { | ||||
35 | } | ||||
36 | |||||
37 | const A & | ||||
38 | A::operator =(const A& rhs) | ||||
39 | { | ||||
40 | m_int = rhs.m_int; | ||||
Devang Patel | 443e46f1 | 2011-04-28 00:02:06 +0000 | [diff] [blame] | 41 | return *this; |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 42 | } |
43 | |||||
44 | int A::get_int() | ||||
45 | { | ||||
46 | return m_int; | ||||
47 | } | ||||
48 | |||||
49 | class B | ||||
50 | { | ||||
51 | public: | ||||
52 | B () {} | ||||
Zachary Turner | 79708b5 | 2017-11-21 01:20:28 +0000 | [diff] [blame] | 53 | |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 54 | A AInstance(); |
55 | }; | ||||
56 | |||||
Zachary Turner | 79708b5 | 2017-11-21 01:20:28 +0000 | [diff] [blame] | 57 | A |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 58 | B::AInstance() |
59 | { | ||||
60 | A a(12); | ||||
61 | return a; | ||||
62 | } | ||||
63 | |||||
64 | int main (int argc, char const *argv[]) | ||||
65 | { | ||||
66 | B b; | ||||
67 | int return_val = b.AInstance().get_int(); | ||||
Zachary Turner | 79708b5 | 2017-11-21 01:20:28 +0000 | [diff] [blame] | 68 | |
Devang Patel | d9bc8e0 | 2011-02-10 00:41:14 +0000 | [diff] [blame] | 69 | A a(b.AInstance()); |
70 | return return_val; | ||||
71 | } |