| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include <iostream> | ||
| 2 | |||
| 3 | namespace ns1 | ||
| 4 | { | ||
| 5 | class Bar1 | ||
| 6 | { | ||
| 7 | public: | ||
| 8 | 3 | Bar1() : m_bar_1(1) | |
| 9 | 6 | { ++m_counter_bar1; } | |
| 10 | 3 | virtual ~Bar1() | |
| 11 | 3 | { --m_counter_bar1; } // possible compiler-generated destruction code - auto-detected and excluded | |
| 12 | |||
| 13 | int m_bar_1; | ||
| 14 | static int m_counter_bar1; | ||
| 15 | }; | ||
| 16 | int Bar1::m_counter_bar1 = 0; | ||
| 17 | } | ||
| 18 | |||
| 19 | namespace ns2 | ||
| 20 | { | ||
| 21 | class Bar2 : public ns1::Bar1 | ||
| 22 | { | ||
| 23 | public: | ||
| 24 | 2 | Bar2() : m_bar_2(2) | |
| 25 | 6 | { ++m_counter_bar2; } | |
| 26 | 2 | virtual ~Bar2() | |
| 27 | 2 | { --m_counter_bar2; } // possible compiler-generated destruction code - auto-detected and excluded | |
| 28 | |||
| 29 | int m_bar_2; | ||
| 30 | static int m_counter_bar2; | ||
| 31 | }; | ||
| 32 | int Bar2::m_counter_bar2 = 0; | ||
| 33 | } | ||
| 34 | |||
| 35 | namespace ns3 | ||
| 36 | { | ||
| 37 | class Bar3 : public ns2::Bar2 | ||
| 38 | { | ||
| 39 | public: | ||
| 40 | 1 | Bar3() : m_bar_3(3) | |
| 41 | 3 | { ++m_counter_bar3; } | |
| 42 | 1 | virtual ~Bar3() | |
| 43 | 1 | { --m_counter_bar3; } // possible compiler-generated destruction code - auto-detected and excluded | |
| 44 | |||
| 45 | int m_bar_3; | ||
| 46 | static int m_counter_bar3; | ||
| 47 | }; | ||
| 48 | int Bar3::m_counter_bar3 = 0; | ||
| 49 | } | ||
| 50 | |||
| 51 | 1 | int main(int argc, char* argv[]) { | |
| 52 | try { | ||
| 53 |
1/2✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
|
1 | ns1::Bar1 bar1; |
| 54 |
3/6✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
|
1 | std::cout << "bar1.m_bar_1: " << bar1.m_bar_1 << std::endl; |
| 55 |
1/2✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
|
1 | ns2::Bar2 bar2; |
| 56 |
3/6✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
|
1 | std::cout << "bar2.m_bar_1: " << bar2.m_bar_1 << std::endl; |
| 57 |
3/6✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
|
1 | std::cout << "bar2.m_bar_2: " << bar2.m_bar_2 << std::endl; |
| 58 |
1/2✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
|
1 | ns3::Bar3 bar3; |
| 59 |
3/6✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
|
1 | std::cout << "bar3.m_bar_1: " << bar3.m_bar_1 << std::endl; |
| 60 |
3/6✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
|
1 | std::cout << "bar3.m_bar_2: " << bar3.m_bar_2 << std::endl; |
| 61 |
3/6✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
|
1 | std::cout << "bar3.m_bar_3: " << bar3.m_bar_3 << std::endl; |
| 62 | − | } catch (const std::exception &e) { // LCOV_EXCL_START | |
| 63 | − | std::cout << "caught exception"; | |
| 64 | − | std::cout << ": " << e.what(); | |
| 65 | − | std::cout << std::endl; | |
| 66 | ✗ | } // LCOV_EXCL_STOP | |
| 67 | |||
| 68 | 1 | return 0; | |
| 69 | ✗ | } // compiler-generated destruction code - auto-detected and excluded | |
| 70 |