111
|
1 /* This small program uses all the arithmetic operators that may
|
|
2 generate calls to library routines which must be implemented in
|
|
3 port-specific assembly language. */
|
|
4 /* { dg-do link } */
|
|
5
|
|
6 #include <stddef.h>
|
|
7
|
|
8 int foo ();
|
|
9 double dfoo ();
|
|
10 void discard (int);
|
|
11 void ddiscard (double);
|
|
12
|
|
13 int
|
|
14 main (void)
|
|
15 {
|
|
16 int a = foo (), b = foo ();
|
|
17 unsigned int au = foo (), bu = foo ();
|
|
18 float af = dfoo (), bf = dfoo ();
|
|
19 double ad = dfoo (), bd = dfoo ();
|
|
20
|
|
21 discard (a * b);
|
|
22 discard (a / b);
|
|
23 discard (a % b);
|
|
24
|
|
25 discard (au / bu);
|
|
26 discard (au % bu);
|
|
27
|
|
28 discard (a >> b);
|
|
29 discard (a << b);
|
|
30
|
|
31 discard (au >> bu);
|
|
32 discard (au << bu);
|
|
33
|
|
34 ddiscard (ad + bd);
|
|
35 ddiscard (ad - bd);
|
|
36 ddiscard (ad * bd);
|
|
37 ddiscard (ad / bd);
|
|
38 ddiscard (-ad);
|
|
39
|
|
40 ddiscard (af + bf);
|
|
41 ddiscard (af - bf);
|
|
42 ddiscard (af * bf);
|
|
43 ddiscard (af / bf);
|
|
44 ddiscard (-af);
|
|
45
|
|
46 discard ((int) ad);
|
|
47 discard ((int) af);
|
|
48
|
|
49 ddiscard ((double) a);
|
|
50 ddiscard ((float) a);
|
|
51 ddiscard ((float) ad);
|
|
52
|
|
53 discard (ad == bd);
|
|
54 discard (ad < bd);
|
|
55 discard (ad > bd);
|
|
56 discard (ad != bd);
|
|
57 discard (ad <= bd);
|
|
58 discard (ad >= bd);
|
|
59
|
|
60 discard (af == bf);
|
|
61 discard (af < bf);
|
|
62 discard (af > bf);
|
|
63 discard (af != bf);
|
|
64 discard (af <= bf);
|
|
65 discard (af >= bf);
|
|
66
|
|
67 return 0;
|
|
68 }
|
|
69
|
|
70 void
|
|
71 discard (x)
|
|
72 int x __attribute__((__unused__));
|
|
73 {}
|
|
74
|
|
75 void
|
|
76 ddiscard (x)
|
|
77 double x __attribute__((__unused__));
|
|
78 {}
|
|
79
|
|
80 int
|
|
81 foo ()
|
|
82 {
|
|
83 static int table[] = {20, 69, 4, 12};
|
|
84 static int idx;
|
|
85
|
|
86 return table[idx++];
|
|
87 }
|
|
88
|
|
89 double
|
|
90 dfoo ()
|
|
91 {
|
|
92 static double table[] = {20.4, 69.96, 4.4, 202.202};
|
|
93 static int idx;
|
|
94
|
|
95 return table[idx++];
|
|
96 }
|