xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/shmain.c (revision b725ae7711052a2233e31a66fefb8a752c388d7a)
1*b725ae77Skettenis /* A test */
2*b725ae77Skettenis 
3*b725ae77Skettenis #include "ss.h"
4*b725ae77Skettenis #include <stdio.h>
5*b725ae77Skettenis 
6*b725ae77Skettenis extern int structarg(struct s);
7*b725ae77Skettenis extern int pstructarg(struct s*);
8*b725ae77Skettenis extern int shr1(int);
9*b725ae77Skettenis extern int shr2(int);
10*b725ae77Skettenis extern float sg;
11*b725ae77Skettenis 
12*b725ae77Skettenis int eglob;
13*b725ae77Skettenis 
14*b725ae77Skettenis struct {
15*b725ae77Skettenis  int a;
16*b725ae77Skettenis  int b;
17*b725ae77Skettenis } s;
18*b725ae77Skettenis 
19*b725ae77Skettenis int g;
20*b725ae77Skettenis 
21*b725ae77Skettenis #ifdef PROTOTYPES
local_structarg(struct s x)22*b725ae77Skettenis int local_structarg(struct s x)
23*b725ae77Skettenis #else
24*b725ae77Skettenis int local_structarg(x)
25*b725ae77Skettenis struct s x;
26*b725ae77Skettenis #endif
27*b725ae77Skettenis {
28*b725ae77Skettenis   return x.b;
29*b725ae77Skettenis }
30*b725ae77Skettenis 
31*b725ae77Skettenis #ifdef PROTOTYPES
mainshr1(int g)32*b725ae77Skettenis int mainshr1(int g)
33*b725ae77Skettenis #else
34*b725ae77Skettenis int mainshr1(g)
35*b725ae77Skettenis int g;
36*b725ae77Skettenis #endif
37*b725ae77Skettenis {
38*b725ae77Skettenis   return 2*g;
39*b725ae77Skettenis }
40*b725ae77Skettenis 
main()41*b725ae77Skettenis int main()
42*b725ae77Skettenis {
43*b725ae77Skettenis   struct s y;
44*b725ae77Skettenis   g = 1;
45*b725ae77Skettenis   g = shr1(g);
46*b725ae77Skettenis   g = shr2(g);
47*b725ae77Skettenis   g = mainshr1(g);
48*b725ae77Skettenis   sg = 1.1;
49*b725ae77Skettenis   printf("address of sg is 0x%x\n", &sg);
50*b725ae77Skettenis   y.a = 3;
51*b725ae77Skettenis   y.b = 4;
52*b725ae77Skettenis   g = local_structarg(y);
53*b725ae77Skettenis   g = structarg(y);
54*b725ae77Skettenis   g = pstructarg(&y);
55*b725ae77Skettenis   return 0;
56*b725ae77Skettenis }
57