1 /* Copyright 1999, 2000, 2004, 2007, 2008, 2009, 2010, 2011
2 Free Software Foundation, Inc.
3 
4    This file is part of GDB.
5 
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10 
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
18 
19 /*
20  *	This simple program that passes different types of arguments
21  *      on function calls.  Useful to test printing frames, stepping, etc.
22  */
23 
24 #include <stdio.h>
25 #include <unistd.h>
26 
callee4(void)27 int callee4 (void)
28 {
29   int A=1;
30   int B=2;
31   int C;
32 
33   C = A + B;
34   return 0;
35 }
callee3(char * strarg)36 callee3 (char *strarg)
37 {
38   callee4 ();
39 }
40 
callee2(int intarg,char * strarg)41 callee2 (int intarg, char *strarg)
42 {
43   callee3 (strarg);
44 }
45 
callee1(int intarg,char * strarg,double fltarg)46 callee1 (int intarg, char *strarg, double fltarg)
47 {
48   callee2 (intarg, strarg);
49 }
50 
callme(int i)51 void callme (int i)
52 {
53   printf ("callme\n");
54 }
55 
return_1()56 int return_1 ()
57 {
58   return 1;
59 }
60 
do_nothing(void)61 void do_nothing (void)
62 {
63 }
64 
main()65 main ()
66 {
67   callee1 (2, "A string argument.", 3.5);
68   callee1 (2, "A string argument.", 3.5);
69 
70   do_nothing (); /* Hello, World! */
71 
72   callme (1);
73   callme (2);
74 
75   return 0;
76 }
77