diff options
author | Doug Evans <dje@gnu.org> | 1995-03-15 23:42:55 +0000 |
---|---|---|
committer | Doug Evans <dje@gnu.org> | 1995-03-15 23:42:55 +0000 |
commit | 2117d0f5dc379a21d6e18a0d0460b5319ab157d9 (patch) | |
tree | d590fc685364452956d73c3da0d8b23ebd5479c6 /gcc/libgcc1-test.c | |
parent | b7484fbe2bf67c98dbff6f270dbc41376c0fdbaf (diff) | |
download | gcc-2117d0f5dc379a21d6e18a0d0460b5319ab157d9.zip gcc-2117d0f5dc379a21d6e18a0d0460b5319ab157d9.tar.gz gcc-2117d0f5dc379a21d6e18a0d0460b5319ab157d9.tar.bz2 |
Initial revision
From-SVN: r9187
Diffstat (limited to 'gcc/libgcc1-test.c')
-rw-r--r-- | gcc/libgcc1-test.c | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/gcc/libgcc1-test.c b/gcc/libgcc1-test.c new file mode 100644 index 0000000..43250a9 --- /dev/null +++ b/gcc/libgcc1-test.c @@ -0,0 +1,89 @@ +/* This small function uses all the arithmetic operators that + libgcc1.c can handle. If you can link it, then + you have provided replacements for all the libgcc1.c functions that + your target machine needs. */ + +int foo (); +double dfoo (); + +main () +{ + int a = foo (), b = foo (); + unsigned int au = foo (), bu = foo (); + float af = dfoo (), bf = dfoo (); + double ad = dfoo (), bd = dfoo (); + + discard (a * b); + discard (a / b); + discard (a % b); + + discard (au / bu); + discard (au % bu); + + discard (a >> b); + discard (a << b); + + discard (au >> bu); + discard (au << bu); + + ddiscard (ad + bd); + ddiscard (ad - bd); + ddiscard (ad * bd); + ddiscard (ad / bd); + ddiscard (-ad); + + ddiscard (af + bf); + ddiscard (af - bf); + ddiscard (af * bf); + ddiscard (af / bf); + ddiscard (-af); + + discard ((int) ad); + discard ((int) af); + + ddiscard ((double) a); + ddiscard ((float) a); + ddiscard ((float) ad); + + discard (ad == bd); + discard (ad < bd); + discard (ad > bd); + discard (ad != bd); + discard (ad <= bd); + discard (ad >= bd); + + discard (af == bf); + discard (af < bf); + discard (af > bf); + discard (af != bf); + discard (af <= bf); + discard (af >= bf); + + return 0; +} + +discard (x) + int x; +{} + +ddiscard (x) + double x; +{} + +foo () +{ + static int table[] = {20, 69, 4, 12}; + static int idx; + + return table[idx++]; +} + +double +dfoo () +{ + static double table[] = {20.4, 69.96, 4.4, 202.202}; + static int idx; + + return table[idx++]; +} + |