1/* Code to go along with tests in rtti.exp. 2 3 Copyright 2003, 2004, 2007 Free Software Foundation, Inc. 4 5 Contributed by David Carlton <carlton@bactrian.org> and by Kealia, 6 Inc. 7 8 This file is part of GDB. 9 10 This program is free software; you can redistribute it and/or modify 11 it under the terms of the GNU General Public License as published by 12 the Free Software Foundation; either version 3 of the License, or 13 (at your option) any later version. 14 15 This program is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 GNU General Public License for more details. 19 20 You should have received a copy of the GNU General Public License 21 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 22 23#include "rtti.h" 24 25namespace n1 { 26 27 class C1; 28 29 class Base1 { 30 public: 31 virtual ~Base1() { } 32 }; 33 34 35 class C1: public Base1 { 36 public: 37 }; 38 39 class D1 : public C1{ 40 public: 41 D1(C1 *, C1 *); 42 43 C1* expr_1_; 44 C1* expr_2_; 45 }; 46 47 D1::D1(C1 *expr_1, C1 *expr_2) 48 : expr_1_(expr_1), expr_2_(expr_2) { } 49 50 C1 *create1() { 51 return new D1(0, 0); 52 } 53 54} // n1 55 56// NOTE: carlton/2004-01-23: This call exists only to convince GCC to 57// keep around a reference to 'obj' in n2::func - GCC 3.4 had been 58// optimizing it away. 59void refer_to (n2::C2 *obj) 60{ 61 // Do nothing. 62} 63 64void refer_to (n2::n3::C3 *obj) 65{ 66 // Do nothing. 67} 68 69namespace n2 70{ 71 void func () 72 { 73 C2 *obj = create2 (); 74 75 refer_to (obj); // func-constructs-done 76 77 return; 78 } 79 80 namespace n3 81 { 82 void func3 () 83 { 84 C3 *obj3 = create3 (); 85 86 refer_to (obj3); // func3-constructs-done 87 88 return; 89 } 90 } 91} 92 93int main() 94{ 95 using namespace n1; 96 using namespace n2; 97 98 C1 *e1 = create1(); 99 C2 *e2 = create2(); 100 101 n2::func(); // main-constructs-done 102 n2::n3::func3(); 103 104 return 0; 105} 106