Annotation of GNUtools/cc/cross-test.c, revision 1.1.1.1

1.1       root        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: 
                      6: int foo ();
                      7: double dfoo ();
                      8: 
                      9: main ()
                     10: {
                     11:   int a = foo (), b = foo ();
                     12:   unsigned int au = foo (), bu = foo ();
                     13:   float af = dfoo (), bf = dfoo ();
                     14:   double ad = dfoo (), bd = dfoo ();
                     15: 
                     16:   discard (a * b);
                     17:   discard (a / b);
                     18:   discard (a % b);
                     19: 
                     20:   discard (au / bu);
                     21:   discard (au % bu);
                     22: 
                     23:   discard (a >> b);
                     24:   discard (a << b);
                     25: 
                     26:   discard (au >> bu);
                     27:   discard (au << bu);
                     28: 
                     29:   ddiscard (ad + bd);
                     30:   ddiscard (ad - bd);
                     31:   ddiscard (ad * bd);
                     32:   ddiscard (ad / bd);
                     33:   ddiscard (-ad);
                     34: 
                     35:   ddiscard (af + bf);
                     36:   ddiscard (af - bf);
                     37:   ddiscard (af * bf);
                     38:   ddiscard (af / bf);
                     39:   ddiscard (-af);
                     40: 
                     41:   discard ((int) ad);
                     42:   discard ((int) af);
                     43: 
                     44:   ddiscard ((double) a);
                     45:   ddiscard ((float) a);
                     46:   ddiscard ((float) ad);
                     47: 
                     48:   discard (ad == bd);
                     49:   discard (ad < bd);
                     50:   discard (ad > bd);
                     51:   discard (ad != bd);
                     52:   discard (ad <= bd);
                     53:   discard (ad >= bd);
                     54: 
                     55:   discard (af == bf);
                     56:   discard (af < bf);
                     57:   discard (af > bf);
                     58:   discard (af != bf);
                     59:   discard (af <= bf);
                     60:   discard (af >= bf);
                     61: 
                     62:   return 0;
                     63: }
                     64: 
                     65: discard (x)
                     66:      int x;
                     67: {}
                     68: 
                     69: ddiscard (x)
                     70:      double x;
                     71: {}
                     72: 
                     73: foo ()
                     74: {
                     75:   static int table[] = {20, 69, 4, 202};
                     76:   static int idx;
                     77: 
                     78:   return table[idx++];
                     79: }
                     80: 
                     81: double
                     82: dfoo ()
                     83: {
                     84:   static double table[] = {20.4, 69.96, 4.4, 202.202};
                     85:   static int idx;
                     86: 
                     87:   return table[idx++];
                     88: }
                     89: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.