|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.