]> gcc.gnu.org Git - gcc.git/blame - gcc/libgcc1-test.c
(mn10200-*-*): New target.
[gcc.git] / gcc / libgcc1-test.c
CommitLineData
2117d0f5
DE
1/* This small function uses all the arithmetic operators that
2 libgcc1.c can handle. If you can link it, then
3 you have provided replacements for all the libgcc1.c functions that
4 your target machine needs. */
5
6int foo ();
7double dfoo ();
8
0d5b1231
DE
9/* We don't want __main here because that can drag in atexit (among other
10 things) which won't necessarily exist yet. */
11
12main_without__main ()
2117d0f5
DE
13{
14 int a = foo (), b = foo ();
15 unsigned int au = foo (), bu = foo ();
16 float af = dfoo (), bf = dfoo ();
17 double ad = dfoo (), bd = dfoo ();
18
19 discard (a * b);
20 discard (a / b);
21 discard (a % b);
22
23 discard (au / bu);
24 discard (au % bu);
25
26 discard (a >> b);
27 discard (a << b);
28
29 discard (au >> bu);
30 discard (au << bu);
31
32 ddiscard (ad + bd);
33 ddiscard (ad - bd);
34 ddiscard (ad * bd);
35 ddiscard (ad / bd);
36 ddiscard (-ad);
37
38 ddiscard (af + bf);
39 ddiscard (af - bf);
40 ddiscard (af * bf);
41 ddiscard (af / bf);
42 ddiscard (-af);
43
44 discard ((int) ad);
45 discard ((int) af);
46
47 ddiscard ((double) a);
48 ddiscard ((float) a);
49 ddiscard ((float) ad);
50
51 discard (ad == bd);
52 discard (ad < bd);
53 discard (ad > bd);
54 discard (ad != bd);
55 discard (ad <= bd);
56 discard (ad >= bd);
57
58 discard (af == bf);
59 discard (af < bf);
60 discard (af > bf);
61 discard (af != bf);
62 discard (af <= bf);
63 discard (af >= bf);
64
65 return 0;
66}
67
68discard (x)
69 int x;
70{}
71
72ddiscard (x)
73 double x;
74{}
75
76foo ()
77{
78 static int table[] = {20, 69, 4, 12};
79 static int idx;
80
81 return table[idx++];
82}
83
84double
85dfoo ()
86{
87 static double table[] = {20.4, 69.96, 4.4, 202.202};
88 static int idx;
89
90 return table[idx++];
91}
92
2aa82cbe
MM
93/* Provide functions that some versions of the linker use to default
94 the start address if -e symbol is not used, to avoid the warning
95 message saying the start address is defaulted. */
96extern void start() __asm__("start");
97extern void _start() __asm__("_start");
979721f8 98extern void __start() __asm__("__start");
2aa82cbe
MM
99
100void start() {}
101void _start() {}
979721f8
MM
102void __start() {}
103void mainCRTStartup() {}
This page took 0.164441 seconds and 5 git commands to generate.