1/* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 2003-2020 Free Software Foundation, Inc. 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 17 18struct B 19{ 20 static int b; 21}; 22 23int B::b = 23; 24 25struct C : public B 26{ 27 static int x; 28 29 struct inner 30 { 31 static int z; 32 }; 33 34 int y; 35 36 C () 37 { 38 // First breakpoint here 39 y = x + inner::z; 40 } 41 42 int m () 43 { 44 // Second breakpoint here 45 return x - y; 46 } 47}; 48 49int C::x = 23; 50int C::inner::z = 0; 51 52template<typename T> 53struct Templ 54{ 55 static int y; 56 57 int m() 58 { 59 // Third breakpoint here 60 return Templ::y; 61 } 62}; 63 64template<typename T> int Templ<T>::y = 23; 65 66int main () 67{ 68 C c; 69 Templ<int> t; 70 71 return c.m() + t.m(); 72} 73