PR c++/13225
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.cp / converts.cc
CommitLineData
7062b0a0
SW
1class A {};
2class B : public A {};
3
4typedef A TA1;
5typedef A TA2;
6typedef TA2 TA3;
7
8int foo0_1 (TA1) { return 1; }
9int foo0_2 (TA3) { return 2; }
10int foo0_3 (A***) { return 3; }
11
12int foo1_1 (char *) {return 11;}
13int foo1_2 (char[]) {return 12;}
14int foo1_3 (int*) {return 13;}
15int foo1_4 (A*) {return 14;}
16int foo1_5 (void*) {return 15;}
026ffab7
SW
17int foo1_6 (void**) {return 16;}
18int foo1_7 (bool) {return 17;}
19int foo1_8 (long) {return 18;}
7062b0a0
SW
20
21int foo2_1 (char** ) {return 21;}
22int foo2_2 (char[][1]) {return 22;}
23int foo2_3 (char *[]) {return 23;}
24int foo2_4 (int *[]) {return 24;}
25
26int main()
27{
28
29 TA2 ta; // typedef to..
30 foo0_1 (ta); // ..another typedef
31 foo0_2 (ta); // ..typedef of a typedef
32
33 B*** bppp; // Pointer-to-pointer-to-pointer-to-derived..
34//foo0_3(bppp); // Pointer-to-pointer-to-pointer base.
35 foo0_3((A***)bppp); // to ensure that the function is emitted.
36
37 char *a; // pointer to..
38 B *bp;
39 foo1_1 (a); // ..pointer
40 foo1_2 (a); // ..array
41 foo1_3 ((int*)a); // ..pointer of wrong type
42 foo1_3 ((int*)bp); // ..pointer of wrong type
43 foo1_4 (bp); // ..ancestor pointer
44 foo1_5 (bp); // ..void pointer
026ffab7
SW
45 foo1_6 ((void**)bp); // ..void pointer pointer
46 foo1_7 (bp); // ..boolean
47 foo1_8 ((long)bp); // ..long int
7062b0a0
SW
48
49 char **b; // pointer pointer to..
50 char ba[1][1];
51 foo1_5 (b); // ..void pointer
52 foo2_1 (b); // ..pointer pointer
53 foo2_2 (ba); // ..array of arrays
54 foo2_3 (b); // ..array of pointers
55 foo2_4 ((int**)b); // ..array of wrong pointers
56 return 0; // end of main
57}
This page took 0.141568 seconds and 4 git commands to generate.