]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.cp/temargs.cc
run copyright.sh for 2011.
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.cp / temargs.cc
CommitLineData
34eaf542
TT
1/* Template argument tests.
2
7b6bb8da 3 Copyright 2010, 2011 Free Software Foundation, Inc.
34eaf542
TT
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
18 Please email any bugs, comments, and/or additions to this file to:
19 bug-gdb@gnu.org */
20
21int a_global;
22
23struct S
24{
25 int f;
26};
27
28template<typename T, int I, int *P, int S::*MP>
29struct Base
30{
31 template<typename Z>
32 struct Inner
33 {
34 void inner_m ()
35 {
36 // Breakpoint 2.
37 }
38 };
39
40 void base_m ()
41 {
42 // Breakpoint 1.
43 }
44
45 template<typename Q>
46 void templ_m ()
47 {
48 // Breakpoint 4.
49 }
50};
51
52template<typename T, int I, int *P, int S::*MP>
53void func ()
54{
55 // Breakpoint 3.
56}
57
58int main ()
59{
60 Base<double, 23, &a_global, &S::f> base;
61 // Note that instantiating with P==0 does not work with g++.
62 // That would be worth testing, once g++ is fixed.
63 Base<long, 47, &a_global, &S::f>::Inner<float> inner;
64
65 base.base_m ();
66 inner.inner_m ();
67 func<unsigned char, 91, &a_global, &S::f> ();
68 base.templ_m<short> ();
69
70 return 0;
71}