Artifact 2922a99e079d85fc97a49d84899c545192d0a2e3:


0000: 2f 2a 20 53 6f 6d 65 20 72 61 6e 64 6f 6d 20 74  /* Some random t
0010: 65 73 74 73 20 66 6f 72 20 76 61 63 61 6c 6c 2e  ests for vacall.
0020: 20 2a 2f 0a 0a 2f 2a 0a 20 2a 20 43 6f 70 79 72   */../*. * Copyr
0030: 69 67 68 74 20 31 39 39 33 20 42 69 6c 6c 20 54  ight 1993 Bill T
0040: 72 69 67 67 73 2c 20 3c 42 69 6c 6c 2e 54 72 69  riggs, <Bill.Tri
0050: 67 67 73 40 69 6e 72 69 61 6c 70 65 73 2e 66 72  ggs@inrialpes.fr
0060: 3e 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 31  >. * Copyright 1
0070: 39 39 35 2d 31 39 39 39 2c 20 32 30 30 31 2d 32  995-1999, 2001-2
0080: 30 30 32 2c 20 32 30 30 35 20 42 72 75 6e 6f 20  002, 2005 Bruno 
0090: 48 61 69 62 6c 65 2c 20 3c 62 72 75 6e 6f 40 63  Haible, <bruno@c
00a0: 6c 69 73 70 2e 6f 72 67 3e 0a 20 2a 0a 20 2a 20  lisp.org>. *. * 
00b0: 54 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66  This is free sof
00c0: 74 77 61 72 65 20 64 69 73 74 72 69 62 75 74 65  tware distribute
00d0: 64 20 75 6e 64 65 72 20 74 68 65 20 47 4e 55 20  d under the GNU 
00e0: 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c  General Public L
00f0: 69 63 65 6e 63 65 0a 20 2a 20 64 65 73 63 72 69  icence. * descri
0100: 62 65 64 20 69 6e 20 74 68 65 20 66 69 6c 65 20  bed in the file 
0110: 43 4f 50 59 49 4e 47 2e 20 43 6f 6e 74 61 63 74  COPYING. Contact
0120: 20 74 68 65 20 61 75 74 68 6f 72 20 69 66 20 79   the author if y
0130: 6f 75 20 64 6f 6e 27 74 20 68 61 76 65 20 74 68  ou don't have th
0140: 69 73 0a 20 2a 20 6f 72 20 63 61 6e 27 74 20 6c  is. * or can't l
0150: 69 76 65 20 77 69 74 68 20 69 74 2e 20 54 68 65  ive with it. The
0160: 72 65 20 69 73 20 41 42 53 4f 4c 55 54 45 4c 59  re is ABSOLUTELY
0170: 20 4e 4f 20 57 41 52 52 41 4e 54 59 2c 20 65 78   NO WARRANTY, ex
0180: 70 6c 69 63 69 74 20 6f 72 20 69 6d 70 6c 69 65  plicit or implie
0190: 64 2c 0a 20 2a 20 6f 6e 20 74 68 69 73 20 73 6f  d,. * on this so
01a0: 66 74 77 61 72 65 2e 0a 20 2a 2f 0a 0a 23 69 6e  ftware.. */..#in
01b0: 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22  clude "config.h"
01c0: 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f  .#include <stdio
01d0: 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74  .h>.#include <st
01e0: 64 6c 69 62 2e 68 3e 0a 23 69 6e 63 6c 75 64 65  dlib.h>.#include
01f0: 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 23 69 6e 63   <string.h>.#inc
0200: 6c 75 64 65 20 22 76 61 63 61 6c 6c 2e 68 22 0a  lude "vacall.h".
0210: 46 49 4c 45 2a 20 6f 75 74 3b 0a 0a 23 69 66 20  FILE* out;..#if 
0220: 64 65 66 69 6e 65 64 28 5f 5f 68 70 70 61 5f 5f  defined(__hppa__
0230: 29 20 26 26 20 64 65 66 69 6e 65 64 28 5f 5f 47  ) && defined(__G
0240: 4e 55 43 5f 5f 29 0a 23 69 66 20 28 5f 5f 47 4e  NUC__).#if (__GN
0250: 55 43 5f 5f 20 3d 3d 20 32 20 26 26 20 5f 5f 47  UC__ == 2 && __G
0260: 4e 55 43 5f 4d 49 4e 4f 52 5f 5f 20 3c 20 36 29  NUC_MINOR__ < 6)
0270: 0a 2f 2a 20 67 63 63 2d 32 2e 35 2e 32 20 62 75  ./* gcc-2.5.2 bu
0280: 67 73 20 70 72 65 76 65 6e 74 20 74 68 65 20 54  gs prevent the T
0290: 20 74 65 73 74 20 66 72 6f 6d 20 77 6f 72 6b 69   test from worki
02a0: 6e 67 2e 20 2a 2f 0a 23 64 65 66 69 6e 65 20 53  ng. */.#define S
02b0: 4b 49 50 5f 54 0a 23 65 6e 64 69 66 0a 23 65 6e  KIP_T.#endif.#en
02c0: 64 69 66 0a 23 69 66 20 64 65 66 69 6e 65 64 28  dif.#if defined(
02d0: 5f 5f 6d 36 38 6b 5f 5f 29 20 26 26 20 64 65 66  __m68k__) && def
02e0: 69 6e 65 64 28 73 75 6e 29 20 26 26 20 21 64 65  ined(sun) && !de
02f0: 66 69 6e 65 64 28 5f 5f 47 4e 55 43 5f 5f 29 0a  fined(__GNUC__).
0300: 2f 2a 20 41 20 53 75 6e 4f 53 20 34 2e 30 2e 33  /* A SunOS 4.0.3
0310: 20 63 63 20 62 75 67 20 69 73 20 74 72 69 67 67   cc bug is trigg
0320: 65 72 65 64 20 62 79 20 74 68 65 20 76 61 5f 61  ered by the va_a
0330: 72 67 5f 73 74 72 75 63 74 20 6d 61 63 72 6f 2e  rg_struct macro.
0340: 20 2a 2f 0a 23 64 65 66 69 6e 65 20 53 4b 49 50   */.#define SKIP
0350: 5f 53 54 52 55 43 54 53 0a 23 65 6e 64 69 66 0a  _STRUCTS.#endif.
0360: 23 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 6d 36  #if defined(__m6
0370: 38 6b 5f 5f 29 20 26 26 20 64 65 66 69 6e 65 64  8k__) && defined
0380: 28 5f 5f 47 4e 55 43 5f 5f 29 0a 2f 2a 20 22 67  (__GNUC__)./* "g
0390: 63 63 2d 32 2e 36 2e 33 20 2d 66 72 65 67 2d 73  cc-2.6.3 -freg-s
03a0: 74 72 75 63 74 2d 72 65 74 75 72 6e 22 20 72 65  truct-return" re
03b0: 74 75 72 6e 73 20 20 54 20 3d 20 73 74 72 75 63  turns  T = struc
03c0: 74 20 7b 20 63 68 61 72 20 63 5b 33 5d 3b 20 7d  t { char c[3]; }
03d0: 20 20 28 77 68 69 63 68 0a 20 2a 20 68 61 73 20    (which. * has 
03e0: 73 69 7a 65 20 34 20 21 29 20 69 6e 20 6d 65 6d  size 4 !) in mem
03f0: 6f 72 79 2c 20 69 6e 20 63 6f 6e 74 72 61 73 74  ory, in contrast
0400: 20 74 6f 20 20 73 74 72 75 63 74 20 7b 20 63 68   to  struct { ch
0410: 61 72 20 61 2c 62 2c 63 3b 20 7d 20 20 61 6e 64  ar a,b,c; }  and
0420: 0a 20 2a 20 73 74 72 75 63 74 20 7b 20 63 68 61  . * struct { cha
0430: 72 20 63 5b 34 5d 3b 20 7d 20 20 61 6e 64 20 20  r c[4]; }  and  
0440: 73 74 72 75 63 74 20 7b 20 63 68 61 72 20 61 2c  struct { char a,
0450: 62 2c 63 2c 64 3b 20 7d 20 20 77 68 69 63 68 20  b,c,d; }  which 
0460: 68 61 76 65 20 74 68 65 20 73 61 6d 65 0a 20 2a  have the same. *
0470: 20 73 69 7a 65 20 61 6e 64 20 74 68 65 20 73 61   size and the sa
0480: 6d 65 20 61 6c 69 67 6e 6d 65 6e 74 20 62 75 74  me alignment but
0490: 20 61 72 65 20 72 65 74 75 72 6e 65 64 20 69 6e   are returned in
04a0: 20 72 65 67 69 73 74 65 72 73 2e 20 49 20 64 6f   registers. I do
04b0: 6e 27 74 20 6b 6e 6f 77 20 77 68 79 2e 0a 20 2a  n't know why.. *
04c0: 2f 0a 23 64 65 66 69 6e 65 20 53 4b 49 50 5f 54  /.#define SKIP_T
04d0: 0a 23 65 6e 64 69 66 0a 23 69 66 20 64 65 66 69  .#endif.#if defi
04e0: 6e 65 64 28 5f 5f 69 33 38 36 5f 5f 29 20 26 26  ned(__i386__) &&
04f0: 20 64 65 66 69 6e 65 64 28 5f 5f 47 4e 55 43 5f   defined(__GNUC_
0500: 5f 29 0a 23 69 66 20 28 5f 5f 47 4e 55 43 5f 5f  _).#if (__GNUC__
0510: 20 3d 3d 20 32 29 20 26 26 20 28 5f 5f 47 4e 55   == 2) && (__GNU
0520: 43 5f 4d 49 4e 4f 52 5f 5f 20 3d 3d 20 37 29 0a  C_MINOR__ == 7).
0530: 2f 2a 20 50 72 6f 62 6c 65 6d 20 77 69 74 68 20  /* Problem with 
0540: 67 63 63 2d 32 2e 37 2e 78 20 6f 6e 20 4c 69 6e  gcc-2.7.x on Lin
0550: 75 78 2f 45 4c 46 3a 20 54 68 65 20 58 20 74 65  ux/ELF: The X te
0560: 73 74 20 66 61 69 6c 73 2e 0a 20 2a 20 54 68 65  st fails.. * The
0570: 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74   calling convent
0580: 69 6f 6e 20 66 6f 72 20 43 20 66 75 6e 63 74 69  ion for C functi
0590: 6f 6e 73 20 72 65 74 75 72 6e 69 6e 67 20 73 74  ons returning st
05a0: 72 75 63 74 75 72 65 73 20 6f 66 20 73 69 7a 65  ructures of size
05b0: 20 3e 20 38 20 62 79 74 65 73 0a 20 2a 20 61 70   > 8 bytes. * ap
05c0: 70 61 72 65 6e 74 6c 79 20 68 61 73 20 63 68 61  parently has cha
05d0: 6e 67 65 64 20 62 65 74 77 65 65 6e 20 67 63 63  nged between gcc
05e0: 2d 32 2e 36 2e 33 20 61 6e 64 20 67 63 63 2d 32  -2.6.3 and gcc-2
05f0: 2e 37 20 28 61 6c 6c 20 69 33 38 36 20 70 6c 61  .7 (all i386 pla
0600: 74 66 6f 72 6d 73 29 2c 0a 20 2a 20 61 6e 64 20  tforms),. * and 
0610: 76 61 63 61 6c 6c 20 73 75 70 70 6f 72 74 73 20  vacall supports 
0620: 6f 6e 6c 79 20 74 68 65 20 6f 6c 64 20 6f 6e 65  only the old one
0630: 2e 20 53 69 6e 63 65 20 67 63 63 2d 32 2e 38 20  . Since gcc-2.8 
0640: 77 69 6c 6c 20 73 77 69 74 63 68 20 62 61 63 6b  will switch back
0650: 20 74 6f 0a 20 2a 20 67 63 63 2d 32 2e 36 2e 33   to. * gcc-2.6.3
0660: 27 73 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65  's calling conve
0670: 6e 74 69 6f 6e 2c 20 49 20 77 6f 6e 27 74 20 63  ntion, I won't c
0680: 68 61 6e 67 65 20 66 66 63 61 6c 6c 2f 76 61 63  hange ffcall/vac
0690: 61 6c 6c 20 66 6f 72 20 74 68 69 73 2e 0a 20 2a  all for this.. *
06a0: 20 4a 75 73 74 20 68 69 64 65 20 74 68 65 20 70   Just hide the p
06b0: 72 6f 62 6c 65 6d 20 62 79 20 6e 6f 74 20 72 75  roblem by not ru
06c0: 6e 6e 69 6e 67 20 74 68 65 20 74 65 73 74 2e 20  nning the test. 
06d0: 54 68 65 20 69 6d 70 61 63 74 20 69 73 6e 27 74  The impact isn't
06e0: 20 62 69 67 20 66 6f 72 0a 20 2a 20 43 4c 49 53   big for. * CLIS
06f0: 50 3a 20 43 61 6c 6c 62 61 63 6b 73 20 72 65 74  P: Callbacks ret
0700: 75 72 6e 69 6e 67 20 73 74 72 75 63 74 75 72 65  urning structure
0710: 73 20 3e 20 38 20 62 79 74 65 73 20 77 6f 6e 27  s > 8 bytes won'
0720: 74 20 77 6f 72 6b 2e 0a 20 2a 2f 0a 23 64 65 66  t work.. */.#def
0730: 69 6e 65 20 53 4b 49 50 5f 58 0a 23 65 6e 64 69  ine SKIP_X.#endi
0740: 66 0a 23 65 6e 64 69 66 0a 23 69 66 20 64 65 66  f.#endif.#if def
0750: 69 6e 65 64 28 5f 5f 73 70 61 72 63 5f 5f 29 20  ined(__sparc__) 
0760: 26 26 20 64 65 66 69 6e 65 64 28 73 75 6e 29 20  && defined(sun) 
0770: 26 26 20 64 65 66 69 6e 65 64 28 5f 5f 53 55 4e  && defined(__SUN
0780: 50 52 4f 5f 43 29 20 2f 2a 20 53 55 4e 57 73 70  PRO_C) /* SUNWsp
0790: 72 6f 20 63 63 20 2a 2f 0a 2f 2a 20 53 75 6e 50  ro cc */./* SunP
07a0: 52 4f 20 63 63 20 6d 69 73 63 6f 6d 70 69 6c 65  RO cc miscompile
07b0: 73 20 74 68 65 20 73 69 6d 75 6c 61 74 6f 72 20  s the simulator 
07c0: 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 58 5f 42  function for X_B
07d0: 63 64 42 3a 20 64 2e 69 5b 31 5d 20 69 73 0a 20  cdB: d.i[1] is. 
07e0: 2a 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 73 74  * temporarily st
07f0: 6f 72 65 64 20 69 6e 20 25 6c 32 20 61 6e 64 20  ored in %l2 and 
0800: 70 75 74 20 6f 6e 74 6f 20 74 68 65 20 73 74 61  put onto the sta
0810: 63 6b 20 66 72 6f 6d 20 25 6c 32 2c 20 62 75 74  ck from %l2, but
0820: 20 69 6e 20 62 65 74 77 65 65 6e 0a 20 2a 20 74   in between. * t
0830: 68 65 20 63 6f 70 79 20 6f 66 20 58 20 68 61 73  he copy of X has
0840: 20 75 73 65 64 20 25 6c 32 20 61 73 20 61 20 63   used %l2 as a c
0850: 6f 75 6e 74 65 72 20 77 69 74 68 6f 75 74 20 73  ounter without s
0860: 61 76 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72  aving and restor
0870: 69 6e 67 20 69 74 73 0a 20 2a 20 76 61 6c 75 65  ing its. * value
0880: 2e 0a 20 2a 2f 0a 23 64 65 66 69 6e 65 20 53 4b  .. */.#define SK
0890: 49 50 5f 58 0a 23 65 6e 64 69 66 0a 23 69 66 20  IP_X.#endif.#if 
08a0: 64 65 66 69 6e 65 64 28 5f 5f 6d 69 70 73 6e 33  defined(__mipsn3
08b0: 32 5f 5f 29 20 26 26 20 21 64 65 66 69 6e 65 64  2__) && !defined
08c0: 28 5f 5f 47 4e 55 43 5f 5f 29 0a 2f 2a 20 54 68  (__GNUC__)./* Th
08d0: 65 20 58 20 74 65 73 74 20 63 72 61 73 68 65 73  e X test crashes
08e0: 20 66 6f 72 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20   for an unknown 
08f0: 72 65 61 73 6f 6e 2e 20 2a 2f 0a 23 64 65 66 69  reason. */.#defi
0900: 6e 65 20 53 4b 49 50 5f 58 0a 23 65 6e 64 69 66  ne SKIP_X.#endif
0910: 0a 0a 23 64 65 66 69 6e 65 20 75 63 68 61 72 20  ..#define uchar 
0920: 75 6e 73 69 67 6e 65 64 20 63 68 61 72 0a 23 64  unsigned char.#d
0930: 65 66 69 6e 65 20 75 73 68 6f 72 74 20 75 6e 73  efine ushort uns
0940: 69 67 6e 65 64 20 73 68 6f 72 74 0a 23 64 65 66  igned short.#def
0950: 69 6e 65 20 75 69 6e 74 20 75 6e 73 69 67 6e 65  ine uint unsigne
0960: 64 20 69 6e 74 0a 23 64 65 66 69 6e 65 20 75 6c  d int.#define ul
0970: 6f 6e 67 20 75 6e 73 69 67 6e 65 64 20 6c 6f 6e  ong unsigned lon
0980: 67 0a 0a 74 79 70 65 64 65 66 20 73 74 72 75 63  g..typedef struc
0990: 74 20 7b 20 63 68 61 72 20 78 3b 20 7d 20 43 68  t { char x; } Ch
09a0: 61 72 3b 0a 74 79 70 65 64 65 66 20 73 74 72 75  ar;.typedef stru
09b0: 63 74 20 7b 20 73 68 6f 72 74 20 78 3b 20 7d 20  ct { short x; } 
09c0: 53 68 6f 72 74 3b 0a 74 79 70 65 64 65 66 20 73  Short;.typedef s
09d0: 74 72 75 63 74 20 7b 20 69 6e 74 20 78 3b 20 7d  truct { int x; }
09e0: 20 49 6e 74 3b 0a 74 79 70 65 64 65 66 20 73 74   Int;.typedef st
09f0: 72 75 63 74 20 7b 20 6c 6f 6e 67 20 78 3b 20 7d  ruct { long x; }
0a00: 20 4c 6f 6e 67 3b 0a 74 79 70 65 64 65 66 20 73   Long;.typedef s
0a10: 74 72 75 63 74 20 7b 20 66 6c 6f 61 74 20 78 3b  truct { float x;
0a20: 20 7d 20 46 6c 6f 61 74 3b 0a 74 79 70 65 64 65   } Float;.typede
0a30: 66 20 73 74 72 75 63 74 20 7b 20 64 6f 75 62 6c  f struct { doubl
0a40: 65 20 78 3b 20 7d 20 44 6f 75 62 6c 65 3b 0a 74  e x; } Double;.t
0a50: 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 20  ypedef struct { 
0a60: 63 68 61 72 20 63 3b 20 66 6c 6f 61 74 20 66 3b  char c; float f;
0a70: 20 7d 20 41 3b 0a 74 79 70 65 64 65 66 20 73 74   } A;.typedef st
0a80: 72 75 63 74 20 7b 20 64 6f 75 62 6c 65 20 64 3b  ruct { double d;
0a90: 20 69 6e 74 20 69 5b 33 5d 3b 20 7d 20 42 3b 0a   int i[3]; } B;.
0aa0: 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b  typedef struct {
0ab0: 20 6c 6f 6e 67 20 6c 31 3b 20 6c 6f 6e 67 20 6c   long l1; long l
0ac0: 32 3b 20 7d 20 4a 3b 0a 74 79 70 65 64 65 66 20  2; } J;.typedef 
0ad0: 73 74 72 75 63 74 20 7b 20 63 68 61 72 20 63 5b  struct { char c[
0ae0: 33 5d 3b 20 7d 20 54 3b 0a 74 79 70 65 64 65 66  3]; } T;.typedef
0af0: 20 73 74 72 75 63 74 20 7b 20 63 68 61 72 20 63   struct { char c
0b00: 5b 33 33 5d 2c 63 31 3b 20 7d 20 58 3b 0a 0a 63  [33],c1; } X;..c
0b10: 68 61 72 20 63 31 3d 27 61 27 2c 20 63 32 3d 31  har c1='a', c2=1
0b20: 32 37 2c 20 63 33 3d 28 63 68 61 72 29 31 32 38  27, c3=(char)128
0b30: 2c 20 63 34 3d 28 63 68 61 72 29 32 35 35 2c 20  , c4=(char)255, 
0b40: 63 35 3d 2d 31 3b 0a 73 68 6f 72 74 20 73 31 3d  c5=-1;.short s1=
0b50: 33 32 37 36 37 2c 20 73 32 3d 28 73 68 6f 72 74  32767, s2=(short
0b60: 29 33 32 37 36 38 2c 20 73 33 3d 33 2c 20 73 34  )32768, s3=3, s4
0b70: 3d 34 2c 20 73 35 3d 35 2c 20 73 36 3d 36 2c 20  =4, s5=5, s6=6, 
0b80: 73 37 3d 37 2c 20 73 38 3d 38 2c 20 73 39 3d 39  s7=7, s8=8, s9=9
0b90: 3b 0a 69 6e 74 20 69 31 3d 31 2c 20 69 32 3d 32  ;.int i1=1, i2=2
0ba0: 2c 20 69 33 3d 33 2c 20 69 34 3d 34 2c 20 69 35  , i3=3, i4=4, i5
0bb0: 3d 35 2c 20 69 36 3d 36 2c 20 69 37 3d 37 2c 20  =5, i6=6, i7=7, 
0bc0: 69 38 3d 38 2c 20 69 39 3d 39 2c 0a 20 20 20 20  i8=8, i9=9,.    
0bd0: 69 31 30 3d 31 31 2c 20 69 31 31 3d 31 32 2c 20  i10=11, i11=12, 
0be0: 69 31 32 3d 31 33 2c 20 69 31 33 3d 31 34 2c 20  i12=13, i13=14, 
0bf0: 69 31 34 3d 31 35 2c 20 69 31 35 3d 31 36 2c 20  i14=15, i15=16, 
0c00: 69 31 36 3d 31 37 3b 0a 6c 6f 6e 67 20 6c 31 3d  i16=17;.long l1=
0c10: 31 2c 20 6c 32 3d 32 2c 20 6c 33 3d 33 2c 20 6c  1, l2=2, l3=3, l
0c20: 34 3d 34 2c 20 6c 35 3d 35 2c 20 6c 36 3d 36 2c  4=4, l5=5, l6=6,
0c30: 20 6c 37 3d 37 2c 20 6c 38 3d 38 2c 20 6c 39 3d   l7=7, l8=8, l9=
0c40: 39 3b 0a 23 69 66 64 65 66 20 48 41 56 45 5f 4c  9;.#ifdef HAVE_L
0c50: 4f 4e 47 5f 4c 4f 4e 47 5f 49 4e 54 0a 6c 6f 6e  ONG_LONG_INT.lon
0c60: 67 20 6c 6f 6e 67 20 6c 6c 31 20 3d 20 33 38 37  g long ll1 = 387
0c70: 35 30 35 36 31 34 33 31 33 30 36 38 39 35 33 30  5056143130689530
0c80: 4c 4c 3b 0a 23 65 6e 64 69 66 0a 66 6c 6f 61 74  LL;.#endif.float
0c90: 20 66 31 3d 30 2e 31 2c 20 66 32 3d 30 2e 32 2c   f1=0.1, f2=0.2,
0ca0: 20 66 33 3d 30 2e 33 2c 20 66 34 3d 30 2e 34 2c   f3=0.3, f4=0.4,
0cb0: 20 66 35 3d 30 2e 35 2c 20 66 36 3d 30 2e 36 2c   f5=0.5, f6=0.6,
0cc0: 20 66 37 3d 30 2e 37 2c 20 66 38 3d 30 2e 38 2c   f7=0.7, f8=0.8,
0cd0: 20 66 39 3d 30 2e 39 2c 0a 20 20 20 20 20 20 66   f9=0.9,.      f
0ce0: 31 30 3d 31 2e 31 2c 20 66 31 31 3d 31 2e 32 2c  10=1.1, f11=1.2,
0cf0: 20 66 31 32 3d 31 2e 33 2c 20 66 31 33 3d 31 2e   f12=1.3, f13=1.
0d00: 34 2c 20 66 31 34 3d 31 2e 35 2c 20 66 31 35 3d  4, f14=1.5, f15=
0d10: 31 2e 36 2c 20 66 31 36 3d 31 2e 37 3b 0a 64 6f  1.6, f16=1.7;.do
0d20: 75 62 6c 65 20 64 31 3d 30 2e 31 2c 20 64 32 3d  uble d1=0.1, d2=
0d30: 30 2e 32 2c 20 64 33 3d 30 2e 33 2c 20 64 34 3d  0.2, d3=0.3, d4=
0d40: 30 2e 34 2c 20 64 35 3d 30 2e 35 2c 20 64 36 3d  0.4, d5=0.5, d6=
0d50: 30 2e 36 2c 20 64 37 3d 30 2e 37 2c 20 64 38 3d  0.6, d7=0.7, d8=
0d60: 30 2e 38 2c 20 64 39 3d 30 2e 39 2c 0a 20 20 20  0.8, d9=0.9,.   
0d70: 20 20 20 20 64 31 30 3d 31 2e 31 2c 20 64 31 31      d10=1.1, d11
0d80: 3d 31 2e 32 2c 20 64 31 32 3d 31 2e 33 2c 20 64  =1.2, d12=1.3, d
0d90: 31 33 3d 31 2e 34 2c 20 64 31 34 3d 31 2e 35 2c  13=1.4, d14=1.5,
0da0: 20 64 31 35 3d 31 2e 36 2c 20 64 31 36 3d 31 2e   d15=1.6, d16=1.
0db0: 37 3b 0a 0a 75 63 68 61 72 20 75 63 31 3d 27 61  7;..uchar uc1='a
0dc0: 27 2c 20 75 63 32 3d 31 32 37 2c 20 75 63 33 3d  ', uc2=127, uc3=
0dd0: 31 32 38 2c 20 75 63 34 3d 32 35 35 2c 20 75 63  128, uc4=255, uc
0de0: 35 3d 28 75 63 68 61 72 29 2d 31 3b 0a 75 73 68  5=(uchar)-1;.ush
0df0: 6f 72 74 20 75 73 31 3d 31 2c 20 75 73 32 3d 32  ort us1=1, us2=2
0e00: 2c 20 75 73 33 3d 33 2c 20 75 73 34 3d 34 2c 20  , us3=3, us4=4, 
0e10: 75 73 35 3d 35 2c 20 75 73 36 3d 36 2c 20 75 73  us5=5, us6=6, us
0e20: 37 3d 37 2c 20 75 73 38 3d 38 2c 20 75 73 39 3d  7=7, us8=8, us9=
0e30: 39 3b 0a 75 69 6e 74 20 75 69 31 3d 31 2c 20 75  9;.uint ui1=1, u
0e40: 69 32 3d 32 2c 20 75 69 33 3d 33 2c 20 75 69 34  i2=2, ui3=3, ui4
0e50: 3d 34 2c 20 75 69 35 3d 35 2c 20 75 69 36 3d 36  =4, ui5=5, ui6=6
0e60: 2c 20 75 69 37 3d 37 2c 20 75 69 38 3d 38 2c 20  , ui7=7, ui8=8, 
0e70: 75 69 39 3d 39 3b 0a 75 6c 6f 6e 67 20 75 6c 31  ui9=9;.ulong ul1
0e80: 3d 31 2c 20 75 6c 32 3d 32 2c 20 75 6c 33 3d 33  =1, ul2=2, ul3=3
0e90: 2c 20 75 6c 34 3d 34 2c 20 75 6c 35 3d 35 2c 20  , ul4=4, ul5=5, 
0ea0: 75 6c 36 3d 36 2c 20 75 6c 37 3d 37 2c 20 75 6c  ul6=6, ul7=7, ul
0eb0: 38 3d 38 2c 20 75 6c 39 3d 39 3b 0a 0a 63 68 61  8=8, ul9=9;..cha
0ec0: 72 20 2a 73 74 72 31 3d 22 68 65 6c 6c 6f 22 2c  r *str1="hello",
0ed0: 73 74 72 32 5b 5d 3d 22 67 6f 6f 64 62 79 65 22  str2[]="goodbye"
0ee0: 2c 2a 73 74 72 33 3d 22 73 74 69 6c 6c 20 68 65  ,*str3="still he
0ef0: 72 65 3f 22 3b 0a 43 68 61 72 20 43 31 3d 7b 27  re?";.Char C1={'
0f00: 41 27 7d 2c 20 43 32 3d 7b 27 42 27 7d 2c 20 43  A'}, C2={'B'}, C
0f10: 33 3d 7b 27 43 27 7d 2c 20 43 34 3d 7b 27 5c 33  3={'C'}, C4={'\3
0f20: 37 37 27 7d 2c 20 43 35 3d 7b 2d 31 7d 3b 0a 53  77'}, C5={-1};.S
0f30: 68 6f 72 74 20 53 31 3d 7b 31 7d 2c 20 53 32 3d  hort S1={1}, S2=
0f40: 7b 32 7d 2c 20 53 33 3d 7b 33 7d 2c 20 53 34 3d  {2}, S3={3}, S4=
0f50: 7b 34 7d 2c 20 53 35 3d 7b 35 7d 2c 20 53 36 3d  {4}, S5={5}, S6=
0f60: 7b 36 7d 2c 20 53 37 3d 7b 37 7d 2c 20 53 38 3d  {6}, S7={7}, S8=
0f70: 7b 38 7d 2c 20 53 39 3d 7b 39 7d 3b 0a 49 6e 74  {8}, S9={9};.Int
0f80: 20 49 31 3d 7b 31 7d 2c 20 49 32 3d 7b 32 7d 2c   I1={1}, I2={2},
0f90: 20 49 33 3d 7b 33 7d 2c 20 49 34 3d 7b 34 7d 2c   I3={3}, I4={4},
0fa0: 20 49 35 3d 7b 35 7d 2c 20 49 36 3d 7b 36 7d 2c   I5={5}, I6={6},
0fb0: 20 49 37 3d 7b 37 7d 2c 20 49 38 3d 7b 38 7d 2c   I7={7}, I8={8},
0fc0: 20 49 39 3d 7b 39 7d 3b 0a 46 6c 6f 61 74 20 46   I9={9};.Float F
0fd0: 31 3d 7b 30 2e 31 7d 2c 20 46 32 3d 7b 30 2e 32  1={0.1}, F2={0.2
0fe0: 7d 2c 20 46 33 3d 7b 30 2e 33 7d 2c 20 46 34 3d  }, F3={0.3}, F4=
0ff0: 7b 30 2e 34 7d 2c 20 46 35 3d 7b 30 2e 35 7d 2c  {0.4}, F5={0.5},
1000: 20 46 36 3d 7b 30 2e 36 7d 2c 20 46 37 3d 7b 30   F6={0.6}, F7={0
1010: 2e 37 7d 2c 20 46 38 3d 7b 30 2e 38 7d 2c 20 46  .7}, F8={0.8}, F
1020: 39 3d 7b 30 2e 39 7d 3b 0a 44 6f 75 62 6c 65 20  9={0.9};.Double 
1030: 44 31 3d 7b 30 2e 31 7d 2c 20 44 32 3d 7b 30 2e  D1={0.1}, D2={0.
1040: 32 7d 2c 20 44 33 3d 7b 30 2e 33 7d 2c 20 44 34  2}, D3={0.3}, D4
1050: 3d 7b 30 2e 34 7d 2c 20 44 35 3d 7b 30 2e 35 7d  ={0.4}, D5={0.5}
1060: 2c 20 44 36 3d 7b 30 2e 36 7d 2c 20 44 37 3d 7b  , D6={0.6}, D7={
1070: 30 2e 37 7d 2c 20 44 38 3d 7b 30 2e 38 7d 2c 20  0.7}, D8={0.8}, 
1080: 44 39 3d 7b 30 2e 39 7d 3b 0a 0a 41 20 41 31 3d  D9={0.9};..A A1=
1090: 7b 27 61 27 2c 30 2e 31 7d 2c 41 32 3d 7b 27 62  {'a',0.1},A2={'b
10a0: 27 2c 30 2e 32 7d 2c 41 33 3d 7b 27 5c 33 37 37  ',0.2},A3={'\377
10b0: 27 2c 30 2e 33 7d 3b 0a 42 20 42 31 3d 7b 30 2e  ',0.3};.B B1={0.
10c0: 31 2c 7b 31 2c 32 2c 33 7d 7d 2c 42 32 3d 7b 30  1,{1,2,3}},B2={0
10d0: 2e 32 2c 7b 35 2c 34 2c 33 7d 7d 3b 0a 4a 20 4a  .2,{5,4,3}};.J J
10e0: 31 3d 7b 34 37 2c 31 31 7d 2c 4a 32 3d 7b 37 33  1={47,11},J2={73
10f0: 2c 35 35 7d 3b 0a 54 20 54 31 3d 7b 27 74 27 2c  ,55};.T T1={'t',
1100: 27 68 27 2c 27 65 27 7d 2c 54 32 3d 7b 27 66 27  'h','e'},T2={'f'
1110: 2c 27 6f 27 2c 27 78 27 7d 3b 0a 58 20 58 31 3d  ,'o','x'};.X X1=
1120: 7b 22 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e  {"abcdefghijklmn
1130: 6f 70 71 72 73 74 75 76 77 78 79 7a 41 42 43 44  opqrstuvwxyzABCD
1140: 45 46 22 2c 27 47 27 7d 2c 20 58 32 3d 7b 22 31  EF",'G'}, X2={"1
1150: 32 33 22 2c 27 39 27 7d 2c 20 58 33 3d 7b 22 72  23",'9'}, X3={"r
1160: 65 74 75 72 6e 2d 72 65 74 75 72 6e 2d 72 65 74  eturn-return-ret
1170: 75 72 6e 22 2c 27 52 27 7d 3b 0a 0a 2f 2a 20 76  urn",'R'};../* v
1180: 6f 69 64 20 74 65 73 74 73 20 2a 2f 0a 76 6f 69  oid tests */.voi
1190: 64 20 76 5f 76 20 28 76 6f 69 64 29 0a 7b 0a 20  d v_v (void).{. 
11a0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 76 6f   fprintf(out,"vo
11b0: 69 64 20 66 28 76 6f 69 64 29 3a 5c 6e 22 29 3b  id f(void):\n");
11c0: 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a  .  fflush(out);.
11d0: 7d 0a 0a 2f 2a 20 69 6e 74 20 74 65 73 74 73 20  }../* int tests 
11e0: 2a 2f 0a 69 6e 74 20 69 5f 76 20 28 76 6f 69 64  */.int i_v (void
11f0: 29 0a 7b 0a 20 20 69 6e 74 20 72 3d 39 39 3b 0a  ).{.  int r=99;.
1200: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 69    fprintf(out,"i
1210: 6e 74 20 66 28 76 6f 69 64 29 3a 22 29 3b 0a 20  nt f(void):");. 
1220: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
1230: 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 69 6e 74 20  return r;.}.int 
1240: 69 5f 69 20 28 69 6e 74 20 61 29 0a 7b 0a 20 20  i_i (int a).{.  
1250: 69 6e 74 20 72 3d 61 2b 31 3b 0a 20 20 66 70 72  int r=a+1;.  fpr
1260: 69 6e 74 66 28 6f 75 74 2c 22 69 6e 74 20 66 28  intf(out,"int f(
1270: 69 6e 74 29 3a 28 25 64 29 22 2c 61 29 3b 0a 20  int):(%d)",a);. 
1280: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
1290: 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 69 6e 74 20  return r;.}.int 
12a0: 69 5f 69 32 20 28 69 6e 74 20 61 2c 20 69 6e 74  i_i2 (int a, int
12b0: 20 62 29 0a 7b 0a 20 20 69 6e 74 20 72 3d 61 2b   b).{.  int r=a+
12c0: 62 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  b;.  fprintf(out
12d0: 2c 22 69 6e 74 20 66 28 32 2a 69 6e 74 29 3a 28  ,"int f(2*int):(
12e0: 25 64 2c 25 64 29 22 2c 61 2c 62 29 3b 0a 20 20  %d,%d)",a,b);.  
12f0: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72  fflush(out);.  r
1300: 65 74 75 72 6e 20 72 3b 0a 7d 0a 69 6e 74 20 69  eturn r;.}.int i
1310: 5f 69 34 20 28 69 6e 74 20 61 2c 20 69 6e 74 20  _i4 (int a, int 
1320: 62 2c 20 69 6e 74 20 63 2c 20 69 6e 74 20 64 29  b, int c, int d)
1330: 0a 7b 0a 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63  .{.  int r=a+b+c
1340: 2b 64 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75  +d;.  fprintf(ou
1350: 74 2c 22 69 6e 74 20 66 28 34 2a 69 6e 74 29 3a  t,"int f(4*int):
1360: 28 25 64 2c 25 64 2c 25 64 2c 25 64 29 22 2c 61  (%d,%d,%d,%d)",a
1370: 2c 62 2c 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73  ,b,c,d);.  fflus
1380: 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e  h(out);.  return
1390: 20 72 3b 0a 7d 0a 69 6e 74 20 69 5f 69 38 20 28   r;.}.int i_i8 (
13a0: 69 6e 74 20 61 2c 20 69 6e 74 20 62 2c 20 69 6e  int a, int b, in
13b0: 74 20 63 2c 20 69 6e 74 20 64 2c 20 69 6e 74 20  t c, int d, int 
13c0: 65 2c 20 69 6e 74 20 66 2c 20 69 6e 74 20 67 2c  e, int f, int g,
13d0: 20 69 6e 74 20 68 29 0a 7b 0a 20 20 69 6e 74 20   int h).{.  int 
13e0: 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b  r=a+b+c+d+e+f+g+
13f0: 68 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  h;.  fprintf(out
1400: 2c 22 69 6e 74 20 66 28 38 2a 69 6e 74 29 3a 28  ,"int f(8*int):(
1410: 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25  %d,%d,%d,%d,%d,%
1420: 64 2c 25 64 2c 25 64 29 22 2c 61 2c 62 2c 63 2c  d,%d,%d)",a,b,c,
1430: 64 2c 65 2c 66 2c 67 2c 68 29 3b 0a 20 20 66 66  d,e,f,g,h);.  ff
1440: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74  lush(out);.  ret
1450: 75 72 6e 20 72 3b 0a 7d 0a 69 6e 74 20 69 5f 69  urn r;.}.int i_i
1460: 31 36 20 28 69 6e 74 20 61 2c 20 69 6e 74 20 62  16 (int a, int b
1470: 2c 20 69 6e 74 20 63 2c 20 69 6e 74 20 64 2c 20  , int c, int d, 
1480: 69 6e 74 20 65 2c 20 69 6e 74 20 66 2c 20 69 6e  int e, int f, in
1490: 74 20 67 2c 20 69 6e 74 20 68 2c 0a 20 20 20 20  t g, int h,.    
14a0: 20 20 20 20 20 20 20 69 6e 74 20 69 2c 20 69 6e         int i, in
14b0: 74 20 6a 2c 20 69 6e 74 20 6b 2c 20 69 6e 74 20  t j, int k, int 
14c0: 6c 2c 20 69 6e 74 20 6d 2c 20 69 6e 74 20 6e 2c  l, int m, int n,
14d0: 20 69 6e 74 20 6f 2c 20 69 6e 74 20 70 29 0a 7b   int o, int p).{
14e0: 0a 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63 2b 64  .  int r=a+b+c+d
14f0: 2b 65 2b 66 2b 67 2b 68 2b 69 2b 6a 2b 6b 2b 6c  +e+f+g+h+i+j+k+l
1500: 2b 6d 2b 6e 2b 6f 2b 70 3b 0a 20 20 66 70 72 69  +m+n+o+p;.  fpri
1510: 6e 74 66 28 6f 75 74 2c 22 69 6e 74 20 66 28 31  ntf(out,"int f(1
1520: 36 2a 69 6e 74 29 3a 28 25 64 2c 25 64 2c 25 64  6*int):(%d,%d,%d
1530: 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c  ,%d,%d,%d,%d,%d,
1540: 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25  %d,%d,%d,%d,%d,%
1550: 64 2c 25 64 2c 25 64 29 22 2c 0a 20 20 20 20 20  d,%d,%d)",.     
1560: 20 20 20 20 20 61 2c 62 2c 63 2c 64 2c 65 2c 66       a,b,c,d,e,f
1570: 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e  ,g,h,i,j,k,l,m,n
1580: 2c 6f 2c 70 29 3b 0a 20 20 66 66 6c 75 73 68 28  ,o,p);.  fflush(
1590: 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72  out);.  return r
15a0: 3b 0a 7d 0a 0a 2f 2a 20 66 6c 6f 61 74 20 74 65  ;.}../* float te
15b0: 73 74 73 20 2a 2f 0a 66 6c 6f 61 74 20 66 5f 66  sts */.float f_f
15c0: 20 28 66 6c 6f 61 74 20 61 29 0a 7b 0a 20 20 66   (float a).{.  f
15d0: 6c 6f 61 74 20 72 3d 61 2b 31 2e 30 3b 0a 20 20  loat r=a+1.0;.  
15e0: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 66 6c 6f  fprintf(out,"flo
15f0: 61 74 20 66 28 66 6c 6f 61 74 29 3a 28 25 67 29  at f(float):(%g)
1600: 22 2c 61 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f  ",a);.  fflush(o
1610: 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b  ut);.  return r;
1620: 0a 7d 0a 66 6c 6f 61 74 20 66 5f 66 32 20 28 66  .}.float f_f2 (f
1630: 6c 6f 61 74 20 61 2c 20 66 6c 6f 61 74 20 62 29  loat a, float b)
1640: 0a 7b 0a 20 20 66 6c 6f 61 74 20 72 3d 61 2b 62  .{.  float r=a+b
1650: 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c  ;.  fprintf(out,
1660: 22 66 6c 6f 61 74 20 66 28 32 2a 66 6c 6f 61 74  "float f(2*float
1670: 29 3a 28 25 67 2c 25 67 29 22 2c 61 2c 62 29 3b  ):(%g,%g)",a,b);
1680: 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a  .  fflush(out);.
1690: 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 66 6c    return r;.}.fl
16a0: 6f 61 74 20 66 5f 66 34 20 28 66 6c 6f 61 74 20  oat f_f4 (float 
16b0: 61 2c 20 66 6c 6f 61 74 20 62 2c 20 66 6c 6f 61  a, float b, floa
16c0: 74 20 63 2c 20 66 6c 6f 61 74 20 64 29 0a 7b 0a  t c, float d).{.
16d0: 20 20 66 6c 6f 61 74 20 72 3d 61 2b 62 2b 63 2b    float r=a+b+c+
16e0: 64 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  d;.  fprintf(out
16f0: 2c 22 66 6c 6f 61 74 20 66 28 34 2a 66 6c 6f 61  ,"float f(4*floa
1700: 74 29 3a 28 25 67 2c 25 67 2c 25 67 2c 25 67 29  t):(%g,%g,%g,%g)
1710: 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 66 66  ",a,b,c,d);.  ff
1720: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74  lush(out);.  ret
1730: 75 72 6e 20 72 3b 0a 7d 0a 66 6c 6f 61 74 20 66  urn r;.}.float f
1740: 5f 66 38 20 28 66 6c 6f 61 74 20 61 2c 20 66 6c  _f8 (float a, fl
1750: 6f 61 74 20 62 2c 20 66 6c 6f 61 74 20 63 2c 20  oat b, float c, 
1760: 66 6c 6f 61 74 20 64 2c 20 66 6c 6f 61 74 20 65  float d, float e
1770: 2c 20 66 6c 6f 61 74 20 66 2c 0a 20 20 20 20 20  , float f,.     
1780: 20 20 20 20 20 20 20 66 6c 6f 61 74 20 67 2c 20         float g, 
1790: 66 6c 6f 61 74 20 68 29 0a 7b 0a 20 20 66 6c 6f  float h).{.  flo
17a0: 61 74 20 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b 66  at r=a+b+c+d+e+f
17b0: 2b 67 2b 68 3b 0a 20 20 66 70 72 69 6e 74 66 28  +g+h;.  fprintf(
17c0: 6f 75 74 2c 22 66 6c 6f 61 74 20 66 28 38 2a 66  out,"float f(8*f
17d0: 6c 6f 61 74 29 3a 28 25 67 2c 25 67 2c 25 67 2c  loat):(%g,%g,%g,
17e0: 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 29 22  %g,%g,%g,%g,%g)"
17f0: 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68  ,a,b,c,d,e,f,g,h
1800: 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29  );.  fflush(out)
1810: 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a  ;.  return r;.}.
1820: 66 6c 6f 61 74 20 66 5f 66 31 36 20 28 66 6c 6f  float f_f16 (flo
1830: 61 74 20 61 2c 20 66 6c 6f 61 74 20 62 2c 20 66  at a, float b, f
1840: 6c 6f 61 74 20 63 2c 20 66 6c 6f 61 74 20 64 2c  loat c, float d,
1850: 20 66 6c 6f 61 74 20 65 2c 20 66 6c 6f 61 74 20   float e, float 
1860: 66 2c 20 66 6c 6f 61 74 20 67 2c 20 66 6c 6f 61  f, float g, floa
1870: 74 20 68 2c 0a 20 20 20 20 20 20 20 20 20 20 20  t h,.           
1880: 20 20 66 6c 6f 61 74 20 69 2c 20 66 6c 6f 61 74    float i, float
1890: 20 6a 2c 20 66 6c 6f 61 74 20 6b 2c 20 66 6c 6f   j, float k, flo
18a0: 61 74 20 6c 2c 20 66 6c 6f 61 74 20 6d 2c 20 66  at l, float m, f
18b0: 6c 6f 61 74 20 6e 2c 20 66 6c 6f 61 74 20 6f 2c  loat n, float o,
18c0: 20 66 6c 6f 61 74 20 70 29 0a 7b 0a 20 20 66 6c   float p).{.  fl
18d0: 6f 61 74 20 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b  oat r=a+b+c+d+e+
18e0: 66 2b 67 2b 68 2b 69 2b 6a 2b 6b 2b 6c 2b 6d 2b  f+g+h+i+j+k+l+m+
18f0: 6e 2b 6f 2b 70 3b 0a 20 20 66 70 72 69 6e 74 66  n+o+p;.  fprintf
1900: 28 6f 75 74 2c 22 66 6c 6f 61 74 20 66 28 31 36  (out,"float f(16
1910: 2a 66 6c 6f 61 74 29 3a 28 25 67 2c 25 67 2c 25  *float):(%g,%g,%
1920: 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67  g,%g,%g,%g,%g,%g
1930: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
1940: 25 67 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63  %g,%g,%g)",a,b,c
1950: 2c 64 2c 65 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b  ,d,e,f,g,h,i,j,k
1960: 2c 6c 2c 6d 2c 6e 2c 6f 2c 70 29 3b 0a 20 20 66  ,l,m,n,o,p);.  f
1970: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65  flush(out);.  re
1980: 74 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2a 20 64 6f  turn r;.}../* do
1990: 75 62 6c 65 20 74 65 73 74 73 20 2a 2f 0a 64 6f  uble tests */.do
19a0: 75 62 6c 65 20 64 5f 64 20 28 64 6f 75 62 6c 65  uble d_d (double
19b0: 20 61 29 0a 7b 0a 20 20 64 6f 75 62 6c 65 20 72   a).{.  double r
19c0: 3d 61 2b 31 2e 30 3b 0a 20 20 66 70 72 69 6e 74  =a+1.0;.  fprint
19d0: 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65 20 66 28  f(out,"double f(
19e0: 64 6f 75 62 6c 65 29 3a 28 25 67 29 22 2c 61 29  double):(%g)",a)
19f0: 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b  ;.  fflush(out);
1a00: 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 64  .  return r;.}.d
1a10: 6f 75 62 6c 65 20 64 5f 64 32 20 28 64 6f 75 62  ouble d_d2 (doub
1a20: 6c 65 20 61 2c 20 64 6f 75 62 6c 65 20 62 29 0a  le a, double b).
1a30: 7b 0a 20 20 64 6f 75 62 6c 65 20 72 3d 61 2b 62  {.  double r=a+b
1a40: 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c  ;.  fprintf(out,
1a50: 22 64 6f 75 62 6c 65 20 66 28 32 2a 64 6f 75 62  "double f(2*doub
1a60: 6c 65 29 3a 28 25 67 2c 25 67 29 22 2c 61 2c 62  le):(%g,%g)",a,b
1a70: 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29  );.  fflush(out)
1a80: 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a  ;.  return r;.}.
1a90: 64 6f 75 62 6c 65 20 64 5f 64 34 20 28 64 6f 75  double d_d4 (dou
1aa0: 62 6c 65 20 61 2c 20 64 6f 75 62 6c 65 20 62 2c  ble a, double b,
1ab0: 20 64 6f 75 62 6c 65 20 63 2c 20 64 6f 75 62 6c   double c, doubl
1ac0: 65 20 64 29 0a 7b 0a 20 20 64 6f 75 62 6c 65 20  e d).{.  double 
1ad0: 72 3d 61 2b 62 2b 63 2b 64 3b 0a 20 20 66 70 72  r=a+b+c+d;.  fpr
1ae0: 69 6e 74 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65  intf(out,"double
1af0: 20 66 28 34 2a 64 6f 75 62 6c 65 29 3a 28 25 67   f(4*double):(%g
1b00: 2c 25 67 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c  ,%g,%g,%g)",a,b,
1b10: 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f  c,d);.  fflush(o
1b20: 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b  ut);.  return r;
1b30: 0a 7d 0a 64 6f 75 62 6c 65 20 64 5f 64 38 20 28  .}.double d_d8 (
1b40: 64 6f 75 62 6c 65 20 61 2c 20 64 6f 75 62 6c 65  double a, double
1b50: 20 62 2c 20 64 6f 75 62 6c 65 20 63 2c 20 64 6f   b, double c, do
1b60: 75 62 6c 65 20 64 2c 20 64 6f 75 62 6c 65 20 65  uble d, double e
1b70: 2c 20 64 6f 75 62 6c 65 20 66 2c 0a 20 20 20 20  , double f,.    
1b80: 20 20 20 20 20 20 20 20 20 64 6f 75 62 6c 65 20           double 
1b90: 67 2c 20 64 6f 75 62 6c 65 20 68 29 0a 7b 0a 20  g, double h).{. 
1ba0: 20 64 6f 75 62 6c 65 20 72 3d 61 2b 62 2b 63 2b   double r=a+b+c+
1bb0: 64 2b 65 2b 66 2b 67 2b 68 3b 0a 20 20 66 70 72  d+e+f+g+h;.  fpr
1bc0: 69 6e 74 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65  intf(out,"double
1bd0: 20 66 28 38 2a 64 6f 75 62 6c 65 29 3a 28 25 67   f(8*double):(%g
1be0: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
1bf0: 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 2c  %g,%g)",a,b,c,d,
1c00: 65 2c 66 2c 67 2c 68 29 3b 0a 20 20 66 66 6c 75  e,f,g,h);.  fflu
1c10: 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72  sh(out);.  retur
1c20: 6e 20 72 3b 0a 7d 0a 64 6f 75 62 6c 65 20 64 5f  n r;.}.double d_
1c30: 64 31 36 20 28 64 6f 75 62 6c 65 20 61 2c 20 64  d16 (double a, d
1c40: 6f 75 62 6c 65 20 62 2c 20 64 6f 75 62 6c 65 20  ouble b, double 
1c50: 63 2c 20 64 6f 75 62 6c 65 20 64 2c 20 64 6f 75  c, double d, dou
1c60: 62 6c 65 20 65 2c 20 64 6f 75 62 6c 65 20 66 2c  ble e, double f,
1c70: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64  .              d
1c80: 6f 75 62 6c 65 20 67 2c 20 64 6f 75 62 6c 65 20  ouble g, double 
1c90: 68 2c 20 64 6f 75 62 6c 65 20 69 2c 20 64 6f 75  h, double i, dou
1ca0: 62 6c 65 20 6a 2c 20 64 6f 75 62 6c 65 20 6b 2c  ble j, double k,
1cb0: 20 64 6f 75 62 6c 65 20 6c 2c 0a 20 20 20 20 20   double l,.     
1cc0: 20 20 20 20 20 20 20 20 20 64 6f 75 62 6c 65 20           double 
1cd0: 6d 2c 20 64 6f 75 62 6c 65 20 6e 2c 20 64 6f 75  m, double n, dou
1ce0: 62 6c 65 20 6f 2c 20 64 6f 75 62 6c 65 20 70 29  ble o, double p)
1cf0: 0a 7b 0a 20 20 64 6f 75 62 6c 65 20 72 3d 61 2b  .{.  double r=a+
1d00: 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 2b 69 2b  b+c+d+e+f+g+h+i+
1d10: 6a 2b 6b 2b 6c 2b 6d 2b 6e 2b 6f 2b 70 3b 0a 20  j+k+l+m+n+o+p;. 
1d20: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 64 6f   fprintf(out,"do
1d30: 75 62 6c 65 20 66 28 31 36 2a 64 6f 75 62 6c 65  uble f(16*double
1d40: 29 3a 28 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25  ):(%g,%g,%g,%g,%
1d50: 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67  g,%g,%g,%g,%g,%g
1d60: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
1d70: 25 67 29 22 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66  %g)",a,b,c,d,e,f
1d80: 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e  ,g,h,i,j,k,l,m,n
1d90: 2c 6f 2c 70 29 3b 0a 20 20 66 66 6c 75 73 68 28  ,o,p);.  fflush(
1da0: 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72  out);.  return r
1db0: 3b 0a 7d 0a 0a 2f 2a 20 70 6f 69 6e 74 65 72 20  ;.}../* pointer 
1dc0: 74 65 73 74 73 20 2a 2f 0a 76 6f 69 64 2a 20 76  tests */.void* v
1dd0: 70 5f 76 70 64 70 63 70 73 70 20 28 76 6f 69 64  p_vpdpcpsp (void
1de0: 2a 20 61 2c 20 64 6f 75 62 6c 65 2a 20 62 2c 20  * a, double* b, 
1df0: 63 68 61 72 2a 20 63 2c 20 49 6e 74 2a 20 64 29  char* c, Int* d)
1e00: 0a 7b 0a 20 20 76 6f 69 64 2a 20 72 65 74 20 3d  .{.  void* ret =
1e10: 20 28 63 68 61 72 2a 29 62 20 2b 20 31 3b 0a 20   (char*)b + 1;. 
1e20: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 76 6f   fprintf(out,"vo
1e30: 69 64 2a 20 66 28 76 6f 69 64 2a 2c 64 6f 75 62  id* f(void*,doub
1e40: 6c 65 2a 2c 63 68 61 72 2a 2c 49 6e 74 2a 29 3a  le*,char*,Int*):
1e50: 28 30 78 25 6c 78 2c 30 78 25 6c 78 2c 30 78 25  (0x%lx,0x%lx,0x%
1e60: 6c 78 2c 30 78 25 6c 78 29 22 2c 28 6c 6f 6e 67  lx,0x%lx)",(long
1e70: 29 61 2c 28 6c 6f 6e 67 29 62 2c 28 6c 6f 6e 67  )a,(long)b,(long
1e80: 29 63 2c 28 6c 6f 6e 67 29 64 29 3b 0a 20 20 66  )c,(long)d);.  f
1e90: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65  flush(out);.  re
1ea0: 74 75 72 6e 20 72 65 74 3b 0a 7d 0a 0a 2f 2a 20  turn ret;.}../* 
1eb0: 6d 69 78 65 64 20 6e 75 6d 62 65 72 20 74 65 73  mixed number tes
1ec0: 74 73 20 2a 2f 0a 75 63 68 61 72 20 75 63 5f 75  ts */.uchar uc_u
1ed0: 63 73 69 6c 20 28 75 63 68 61 72 20 61 2c 20 75  csil (uchar a, u
1ee0: 73 68 6f 72 74 20 62 2c 20 75 69 6e 74 20 63 2c  short b, uint c,
1ef0: 20 75 6c 6f 6e 67 20 64 29 0a 7b 0a 20 20 75 63   ulong d).{.  uc
1f00: 68 61 72 20 72 20 3d 20 28 75 63 68 61 72 29 2d  har r = (uchar)-
1f10: 31 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  1;.  fprintf(out
1f20: 2c 22 75 63 68 61 72 20 66 28 75 63 68 61 72 2c  ,"uchar f(uchar,
1f30: 75 73 68 6f 72 74 2c 75 69 6e 74 2c 75 6c 6f 6e  ushort,uint,ulon
1f40: 67 29 3a 28 25 75 2c 25 75 2c 25 75 2c 25 6c 75  g):(%u,%u,%u,%lu
1f50: 29 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 66  )",a,b,c,d);.  f
1f60: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65  flush(out);.  re
1f70: 74 75 72 6e 20 72 3b 0a 7d 0a 64 6f 75 62 6c 65  turn r;.}.double
1f80: 20 64 5f 69 69 64 64 20 28 69 6e 74 20 61 2c 20   d_iidd (int a, 
1f90: 69 6e 74 20 62 2c 20 64 6f 75 62 6c 65 20 63 2c  int b, double c,
1fa0: 20 64 6f 75 62 6c 65 20 64 29 0a 7b 0a 20 20 64   double d).{.  d
1fb0: 6f 75 62 6c 65 20 72 20 3d 20 61 2b 62 2b 63 2b  ouble r = a+b+c+
1fc0: 64 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  d;.  fprintf(out
1fd0: 2c 22 64 6f 75 62 6c 65 20 66 28 69 6e 74 2c 69  ,"double f(int,i
1fe0: 6e 74 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65  nt,double,double
1ff0: 29 3a 28 25 64 2c 25 64 2c 25 67 2c 25 67 29 22  ):(%d,%d,%g,%g)"
2000: 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 66 66 6c  ,a,b,c,d);.  ffl
2010: 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75  ush(out);.  retu
2020: 72 6e 20 72 3b 0a 7d 0a 64 6f 75 62 6c 65 20 64  rn r;.}.double d
2030: 5f 69 64 69 64 20 28 69 6e 74 20 61 2c 20 64 6f  _idid (int a, do
2040: 75 62 6c 65 20 62 2c 20 69 6e 74 20 63 2c 20 64  uble b, int c, d
2050: 6f 75 62 6c 65 20 64 29 0a 7b 0a 20 20 64 6f 75  ouble d).{.  dou
2060: 62 6c 65 20 72 20 3d 20 61 2b 62 2b 63 2b 64 3b  ble r = a+b+c+d;
2070: 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22  .  fprintf(out,"
2080: 64 6f 75 62 6c 65 20 66 28 69 6e 74 2c 64 6f 75  double f(int,dou
2090: 62 6c 65 2c 69 6e 74 2c 64 6f 75 62 6c 65 29 3a  ble,int,double):
20a0: 28 25 64 2c 25 67 2c 25 64 2c 25 67 29 22 2c 61  (%d,%g,%d,%g)",a
20b0: 2c 62 2c 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73  ,b,c,d);.  fflus
20c0: 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e  h(out);.  return
20d0: 20 72 3b 0a 7d 0a 75 73 68 6f 72 74 20 75 73 5f   r;.}.ushort us_
20e0: 63 64 63 64 20 28 63 68 61 72 20 61 2c 20 64 6f  cdcd (char a, do
20f0: 75 62 6c 65 20 62 2c 20 63 68 61 72 20 63 2c 20  uble b, char c, 
2100: 64 6f 75 62 6c 65 20 64 29 0a 7b 0a 20 20 75 73  double d).{.  us
2110: 68 6f 72 74 20 72 20 3d 20 28 75 73 68 6f 72 74  hort r = (ushort
2120: 29 28 61 20 2b 20 62 20 2b 20 63 20 2b 20 64 29  )(a + b + c + d)
2130: 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c  ;.  fprintf(out,
2140: 22 75 73 68 6f 72 74 20 66 28 63 68 61 72 2c 64  "ushort f(char,d
2150: 6f 75 62 6c 65 2c 63 68 61 72 2c 64 6f 75 62 6c  ouble,char,doubl
2160: 65 29 3a 28 27 25 63 27 2c 25 67 2c 27 25 63 27  e):('%c',%g,'%c'
2170: 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a  ,%g)",a,b,c,d);.
2180: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
2190: 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 23 69   return r;.}..#i
21a0: 66 64 65 66 20 48 41 56 45 5f 4c 4f 4e 47 5f 4c  fdef HAVE_LONG_L
21b0: 4f 4e 47 5f 49 4e 54 0a 6c 6f 6e 67 20 6c 6f 6e  ONG_INT.long lon
21c0: 67 20 6c 6c 5f 66 6c 6c 69 20 28 66 6c 6f 61 74  g ll_flli (float
21d0: 20 61 2c 20 6c 6f 6e 67 20 6c 6f 6e 67 20 62 2c   a, long long b,
21e0: 20 69 6e 74 20 63 29 0a 7b 0a 20 20 6c 6f 6e 67   int c).{.  long
21f0: 20 6c 6f 6e 67 20 72 20 3d 20 28 6c 6f 6e 67 20   long r = (long 
2200: 6c 6f 6e 67 29 28 69 6e 74 29 61 20 2b 20 62 20  long)(int)a + b 
2210: 2b 20 28 6c 6f 6e 67 20 6c 6f 6e 67 29 63 3b 0a  + (long long)c;.
2220: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 6c    fprintf(out,"l
2230: 6f 6e 67 20 6c 6f 6e 67 20 66 28 66 6c 6f 61 74  ong long f(float
2240: 2c 6c 6f 6e 67 20 6c 6f 6e 67 2c 69 6e 74 29 3a  ,long long,int):
2250: 28 25 67 2c 30 78 25 6c 78 25 30 38 6c 78 2c 30  (%g,0x%lx%08lx,0
2260: 78 25 6c 78 29 22 2c 61 2c 28 6c 6f 6e 67 29 28  x%lx)",a,(long)(
2270: 62 3e 3e 33 32 29 2c 28 6c 6f 6e 67 29 28 62 26  b>>32),(long)(b&
2280: 30 78 66 66 66 66 66 66 66 66 29 2c 28 6c 6f 6e  0xffffffff),(lon
2290: 67 29 63 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f  g)c);.  fflush(o
22a0: 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b  ut);.  return r;
22b0: 0a 7d 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 73 74  .}.#endif../* st
22c0: 72 75 63 74 75 72 65 20 74 65 73 74 73 20 2a 2f  ructure tests */
22d0: 0a 49 6e 74 20 49 5f 49 49 49 20 28 49 6e 74 20  .Int I_III (Int 
22e0: 61 2c 20 49 6e 74 20 62 2c 20 49 6e 74 20 63 29  a, Int b, Int c)
22f0: 0a 7b 0a 20 20 49 6e 74 20 72 3b 0a 20 20 72 2e  .{.  Int r;.  r.
2300: 78 20 3d 20 61 2e 78 20 2b 20 62 2e 78 20 2b 20  x = a.x + b.x + 
2310: 63 2e 78 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f  c.x;.  fprintf(o
2320: 75 74 2c 22 49 6e 74 20 66 28 49 6e 74 2c 49 6e  ut,"Int f(Int,In
2330: 74 2c 49 6e 74 29 3a 28 7b 25 64 7d 2c 7b 25 64  t,Int):({%d},{%d
2340: 7d 2c 7b 25 64 7d 29 22 2c 61 2e 78 2c 62 2e 78  },{%d})",a.x,b.x
2350: 2c 63 2e 78 29 3b 0a 20 20 66 66 6c 75 73 68 28  ,c.x);.  fflush(
2360: 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72  out);.  return r
2370: 3b 0a 7d 0a 43 68 61 72 20 43 5f 43 64 43 20 28  ;.}.Char C_CdC (
2380: 43 68 61 72 20 61 2c 20 64 6f 75 62 6c 65 20 62  Char a, double b
2390: 2c 20 43 68 61 72 20 63 29 0a 7b 0a 20 20 43 68  , Char c).{.  Ch
23a0: 61 72 20 72 3b 0a 20 20 72 2e 78 20 3d 20 28 61  ar r;.  r.x = (a
23b0: 2e 78 20 2b 20 63 2e 78 29 2f 32 3b 0a 20 20 66  .x + c.x)/2;.  f
23c0: 70 72 69 6e 74 66 28 6f 75 74 2c 22 43 68 61 72  printf(out,"Char
23d0: 20 66 28 43 68 61 72 2c 64 6f 75 62 6c 65 2c 43   f(Char,double,C
23e0: 68 61 72 29 3a 28 7b 27 25 63 27 7d 2c 25 67 2c  har):({'%c'},%g,
23f0: 7b 27 25 63 27 7d 29 22 2c 61 2e 78 2c 62 2c 63  {'%c'})",a.x,b,c
2400: 2e 78 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75  .x);.  fflush(ou
2410: 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a  t);.  return r;.
2420: 7d 0a 46 6c 6f 61 74 20 46 5f 46 66 64 20 28 46  }.Float F_Ffd (F
2430: 6c 6f 61 74 20 61 2c 20 66 6c 6f 61 74 20 62 2c  loat a, float b,
2440: 20 64 6f 75 62 6c 65 20 63 29 0a 7b 0a 20 20 46   double c).{.  F
2450: 6c 6f 61 74 20 72 3b 0a 20 20 72 2e 78 20 3d 20  loat r;.  r.x = 
2460: 61 2e 78 20 2b 20 62 20 2b 20 63 3b 0a 20 20 66  a.x + b + c;.  f
2470: 70 72 69 6e 74 66 28 6f 75 74 2c 22 46 6c 6f 61  printf(out,"Floa
2480: 74 20 66 28 46 6c 6f 61 74 2c 66 6c 6f 61 74 2c  t f(Float,float,
2490: 64 6f 75 62 6c 65 29 3a 28 7b 25 67 7d 2c 25 67  double):({%g},%g
24a0: 2c 25 67 29 22 2c 61 2e 78 2c 62 2c 63 29 3b 0a  ,%g)",a.x,b,c);.
24b0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
24c0: 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 44 6f 75   return r;.}.Dou
24d0: 62 6c 65 20 44 5f 66 44 64 20 28 66 6c 6f 61 74  ble D_fDd (float
24e0: 20 61 2c 20 44 6f 75 62 6c 65 20 62 2c 20 64 6f   a, Double b, do
24f0: 75 62 6c 65 20 63 29 0a 7b 0a 20 20 44 6f 75 62  uble c).{.  Doub
2500: 6c 65 20 72 3b 0a 20 20 72 2e 78 20 3d 20 61 20  le r;.  r.x = a 
2510: 2b 20 62 2e 78 20 2b 20 63 3b 0a 20 20 66 70 72  + b.x + c;.  fpr
2520: 69 6e 74 66 28 6f 75 74 2c 22 44 6f 75 62 6c 65  intf(out,"Double
2530: 20 66 28 66 6c 6f 61 74 2c 44 6f 75 62 6c 65 2c   f(float,Double,
2540: 64 6f 75 62 6c 65 29 3a 28 25 67 2c 7b 25 67 7d  double):(%g,{%g}
2550: 2c 25 67 29 22 2c 61 2c 62 2e 78 2c 63 29 3b 0a  ,%g)",a,b.x,c);.
2560: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
2570: 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 4a 20 4a   return r;.}.J J
2580: 5f 4a 69 4a 20 28 4a 20 61 2c 20 69 6e 74 20 62  _JiJ (J a, int b
2590: 2c 20 4a 20 63 29 0a 7b 0a 20 20 4a 20 72 3b 0a  , J c).{.  J r;.
25a0: 20 20 72 2e 6c 31 20 3d 20 61 2e 6c 31 2b 63 2e    r.l1 = a.l1+c.
25b0: 6c 31 3b 20 72 2e 6c 32 20 3d 20 61 2e 6c 32 2b  l1; r.l2 = a.l2+
25c0: 62 2b 63 2e 6c 32 3b 0a 20 20 66 70 72 69 6e 74  b+c.l2;.  fprint
25d0: 66 28 6f 75 74 2c 22 4a 20 66 28 4a 2c 69 6e 74  f(out,"J f(J,int
25e0: 2c 4a 29 3a 28 7b 25 6c 64 2c 25 6c 64 7d 2c 25  ,J):({%ld,%ld},%
25f0: 64 2c 7b 25 6c 64 2c 25 6c 64 7d 29 22 2c 61 2e  d,{%ld,%ld})",a.
2600: 6c 31 2c 61 2e 6c 32 2c 62 2c 63 2e 6c 31 2c 63  l1,a.l2,b,c.l1,c
2610: 2e 6c 32 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f  .l2);.  fflush(o
2620: 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b  ut);.  return r;
2630: 0a 7d 0a 54 20 54 5f 54 63 54 20 28 54 20 61 2c  .}.T T_TcT (T a,
2640: 20 63 68 61 72 20 62 2c 20 54 20 63 29 0a 7b 0a   char b, T c).{.
2650: 20 20 54 20 72 3b 0a 20 20 72 2e 63 5b 30 5d 3d    T r;.  r.c[0]=
2660: 27 62 27 3b 20 72 2e 63 5b 31 5d 3d 63 2e 63 5b  'b'; r.c[1]=c.c[
2670: 31 5d 3b 20 72 2e 63 5b 32 5d 3d 63 2e 63 5b 32  1]; r.c[2]=c.c[2
2680: 5d 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  ];.  fprintf(out
2690: 2c 22 54 20 66 28 54 2c 63 68 61 72 2c 54 29 3a  ,"T f(T,char,T):
26a0: 28 7b 5c 22 25 63 25 63 25 63 5c 22 7d 2c 27 25  ({\"%c%c%c\"},'%
26b0: 63 27 2c 7b 5c 22 25 63 25 63 25 63 5c 22 7d 29  c',{\"%c%c%c\"})
26c0: 22 2c 61 2e 63 5b 30 5d 2c 61 2e 63 5b 31 5d 2c  ",a.c[0],a.c[1],
26d0: 61 2e 63 5b 32 5d 2c 62 2c 63 2e 63 5b 30 5d 2c  a.c[2],b,c.c[0],
26e0: 63 2e 63 5b 31 5d 2c 63 2e 63 5b 32 5d 29 3b 0a  c.c[1],c.c[2]);.
26f0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
2700: 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 58 20 58   return r;.}.X X
2710: 5f 42 63 64 42 20 28 42 20 61 2c 20 63 68 61 72  _BcdB (B a, char
2720: 20 62 2c 20 64 6f 75 62 6c 65 20 63 2c 20 42 20   b, double c, B 
2730: 64 29 0a 7b 0a 20 20 73 74 61 74 69 63 20 58 20  d).{.  static X 
2740: 78 72 3d 7b 22 72 65 74 75 72 6e 20 76 61 6c 22  xr={"return val"
2750: 2c 27 52 27 7d 3b 0a 20 20 58 20 72 3b 0a 20 20  ,'R'};.  X r;.  
2760: 72 20 3d 20 78 72 3b 0a 20 20 72 2e 63 31 20 3d  r = xr;.  r.c1 =
2770: 20 62 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75   b;.  fprintf(ou
2780: 74 2c 22 58 20 66 28 42 2c 63 68 61 72 2c 64 6f  t,"X f(B,char,do
2790: 75 62 6c 65 2c 42 29 3a 28 7b 25 67 2c 7b 25 64  uble,B):({%g,{%d
27a0: 2c 25 64 2c 25 64 7d 7d 2c 27 25 63 27 2c 25 67  ,%d,%d}},'%c',%g
27b0: 2c 7b 25 67 2c 7b 25 64 2c 25 64 2c 25 64 7d 7d  ,{%g,{%d,%d,%d}}
27c0: 29 22 2c 0a 20 20 20 20 20 20 20 20 20 20 61 2e  )",.          a.
27d0: 64 2c 61 2e 69 5b 30 5d 2c 61 2e 69 5b 31 5d 2c  d,a.i[0],a.i[1],
27e0: 61 2e 69 5b 32 5d 2c 62 2c 63 2c 64 2e 64 2c 64  a.i[2],b,c,d.d,d
27f0: 2e 69 5b 30 5d 2c 64 2e 69 5b 31 5d 2c 64 2e 69  .i[0],d.i[1],d.i
2800: 5b 32 5d 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f  [2]);.  fflush(o
2810: 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b  ut);.  return r;
2820: 0a 7d 0a 0a 0a 76 6f 69 64 2a 20 63 75 72 72 65  .}...void* curre
2830: 6e 74 5f 66 75 6e 63 74 69 6f 6e 3b 0a 0a 2f 2a  nt_function;../*
2840: 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73   This function s
2850: 69 6d 75 6c 61 74 65 73 20 74 68 65 20 62 65 68  imulates the beh
2860: 61 76 69 6f 75 72 20 6f 66 20 63 75 72 72 65 6e  aviour of curren
2870: 74 5f 66 75 6e 63 74 69 6f 6e 2e 20 2a 2f 0a 76  t_function. */.v
2880: 6f 69 64 20 73 69 6d 75 6c 61 74 6f 72 20 28 76  oid simulator (v
2890: 61 5f 61 6c 69 73 74 20 61 6c 69 73 74 29 0a 7b  a_alist alist).{
28a0: 0a 20 20 2f 2a 20 76 6f 69 64 20 74 65 73 74 73  .  /* void tests
28b0: 20 2a 2f 0a 20 20 69 66 20 28 63 75 72 72 65 6e   */.  if (curren
28c0: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76  t_function == (v
28d0: 6f 69 64 2a 29 26 76 5f 76 29 0a 20 20 20 20 7b  oid*)&v_v).    {
28e0: 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f  .      va_start_
28f0: 76 6f 69 64 28 61 6c 69 73 74 29 3b 0a 20 20 20  void(alist);.   
2900: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
2910: 76 6f 69 64 20 66 28 76 6f 69 64 29 3a 5c 6e 22  void f(void):\n"
2920: 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28  );.      fflush(
2930: 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72  out);.      va_r
2940: 65 74 75 72 6e 5f 76 6f 69 64 28 61 6c 69 73 74  eturn_void(alist
2950: 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 2f 2a 20 69  );.    }..  /* i
2960: 6e 74 20 74 65 73 74 73 20 2a 2f 0a 20 20 65 6c  nt tests */.  el
2970: 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66  se if (current_f
2980: 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64  unction == (void
2990: 2a 29 26 69 5f 76 29 0a 20 20 20 20 7b 0a 20 20  *)&i_v).    {.  
29a0: 20 20 20 20 76 61 5f 73 74 61 72 74 5f 69 6e 74      va_start_int
29b0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 69  (alist);.     {i
29c0: 6e 74 20 72 3d 39 39 3b 0a 20 20 20 20 20 20 66  nt r=99;.      f
29d0: 70 72 69 6e 74 66 28 6f 75 74 2c 22 69 6e 74 20  printf(out,"int 
29e0: 66 28 76 6f 69 64 29 3a 22 29 3b 0a 20 20 20 20  f(void):");.    
29f0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
2a00: 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 69       va_return_i
2a10: 6e 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20  nt(alist, r);.  
2a20: 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20 28    }}.  else if (
2a30: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
2a40: 20 3d 3d 20 28 76 6f 69 64 2a 29 26 69 5f 69 29   == (void*)&i_i)
2a50: 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61 5f  .    {.      va_
2a60: 73 74 61 72 74 5f 69 6e 74 28 61 6c 69 73 74 29  start_int(alist)
2a70: 3b 0a 20 20 20 20 20 7b 69 6e 74 20 61 20 3d 20  ;.     {int a = 
2a80: 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74  va_arg_int(alist
2a90: 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 72 3d 61  );.      int r=a
2aa0: 2b 31 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74  +1;.      fprint
2ab0: 66 28 6f 75 74 2c 22 69 6e 74 20 66 28 69 6e 74  f(out,"int f(int
2ac0: 29 3a 28 25 64 29 22 2c 61 29 3b 0a 20 20 20 20  ):(%d)",a);.    
2ad0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
2ae0: 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 69       va_return_i
2af0: 6e 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20  nt(alist, r);.  
2b00: 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20 28    }}.  else if (
2b10: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
2b20: 20 3d 3d 20 28 76 6f 69 64 2a 29 26 69 5f 69 32   == (void*)&i_i2
2b30: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61  ).    {.      va
2b40: 5f 73 74 61 72 74 5f 69 6e 74 28 61 6c 69 73 74  _start_int(alist
2b50: 29 3b 0a 20 20 20 20 20 7b 69 6e 74 20 61 20 3d  );.     {int a =
2b60: 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73   va_arg_int(alis
2b70: 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 62 20  t);.      int b 
2b80: 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69  = va_arg_int(ali
2b90: 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 72  st);.      int r
2ba0: 3d 61 2b 62 3b 0a 20 20 20 20 20 20 66 70 72 69  =a+b;.      fpri
2bb0: 6e 74 66 28 6f 75 74 2c 22 69 6e 74 20 66 28 32  ntf(out,"int f(2
2bc0: 2a 69 6e 74 29 3a 28 25 64 2c 25 64 29 22 2c 61  *int):(%d,%d)",a
2bd0: 2c 62 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73  ,b);.      fflus
2be0: 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61  h(out);.      va
2bf0: 5f 72 65 74 75 72 6e 5f 69 6e 74 28 61 6c 69 73  _return_int(alis
2c00: 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20  t, r);.    }}.  
2c10: 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74  else if (current
2c20: 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f  _function == (vo
2c30: 69 64 2a 29 26 69 5f 69 34 29 0a 20 20 20 20 7b  id*)&i_i4).    {
2c40: 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f  .      va_start_
2c50: 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  int(alist);.    
2c60: 20 7b 69 6e 74 20 61 20 3d 20 76 61 5f 61 72 67   {int a = va_arg
2c70: 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  _int(alist);.   
2c80: 20 20 20 69 6e 74 20 62 20 3d 20 76 61 5f 61 72     int b = va_ar
2c90: 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20  g_int(alist);.  
2ca0: 20 20 20 20 69 6e 74 20 63 20 3d 20 76 61 5f 61      int c = va_a
2cb0: 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20  rg_int(alist);. 
2cc0: 20 20 20 20 20 69 6e 74 20 64 20 3d 20 76 61 5f       int d = va_
2cd0: 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a  arg_int(alist);.
2ce0: 20 20 20 20 20 20 69 6e 74 20 72 3d 61 2b 62 2b        int r=a+b+
2cf0: 63 2b 64 3b 0a 20 20 20 20 20 20 66 70 72 69 6e  c+d;.      fprin
2d00: 74 66 28 6f 75 74 2c 22 69 6e 74 20 66 28 34 2a  tf(out,"int f(4*
2d10: 69 6e 74 29 3a 28 25 64 2c 25 64 2c 25 64 2c 25  int):(%d,%d,%d,%
2d20: 64 29 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20  d)",a,b,c,d);.  
2d30: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
2d40: 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e  .      va_return
2d50: 5f 69 6e 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a  _int(alist, r);.
2d60: 20 20 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66      }}.  else if
2d70: 20 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69   (current_functi
2d80: 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 69 5f  on == (void*)&i_
2d90: 69 38 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20  i8).    {.      
2da0: 76 61 5f 73 74 61 72 74 5f 69 6e 74 28 61 6c 69  va_start_int(ali
2db0: 73 74 29 3b 0a 20 20 20 20 20 7b 69 6e 74 20 61  st);.     {int a
2dc0: 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c   = va_arg_int(al
2dd0: 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20  ist);.      int 
2de0: 62 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61  b = va_arg_int(a
2df0: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74  list);.      int
2e00: 20 63 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28   c = va_arg_int(
2e10: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e  alist);.      in
2e20: 74 20 64 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74  t d = va_arg_int
2e30: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69  (alist);.      i
2e40: 6e 74 20 65 20 3d 20 76 61 5f 61 72 67 5f 69 6e  nt e = va_arg_in
2e50: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
2e60: 69 6e 74 20 66 20 3d 20 76 61 5f 61 72 67 5f 69  int f = va_arg_i
2e70: 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  nt(alist);.     
2e80: 20 69 6e 74 20 67 20 3d 20 76 61 5f 61 72 67 5f   int g = va_arg_
2e90: 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  int(alist);.    
2ea0: 20 20 69 6e 74 20 68 20 3d 20 76 61 5f 61 72 67    int h = va_arg
2eb0: 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  _int(alist);.   
2ec0: 20 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63 2b 64     int r=a+b+c+d
2ed0: 2b 65 2b 66 2b 67 2b 68 3b 0a 20 20 20 20 20 20  +e+f+g+h;.      
2ee0: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 69 6e 74  fprintf(out,"int
2ef0: 20 66 28 38 2a 69 6e 74 29 3a 28 25 64 2c 25 64   f(8*int):(%d,%d
2f00: 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c  ,%d,%d,%d,%d,%d,
2f10: 25 64 29 22 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66  %d)",a,b,c,d,e,f
2f20: 2c 67 2c 68 29 3b 0a 20 20 20 20 20 20 66 66 6c  ,g,h);.      ffl
2f30: 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20  ush(out);.      
2f40: 76 61 5f 72 65 74 75 72 6e 5f 69 6e 74 28 61 6c  va_return_int(al
2f50: 69 73 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a  ist, r);.    }}.
2f60: 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65    else if (curre
2f70: 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28  nt_function == (
2f80: 76 6f 69 64 2a 29 26 69 5f 69 31 36 29 0a 20 20  void*)&i_i16).  
2f90: 20 20 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61    {.      va_sta
2fa0: 72 74 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20  rt_int(alist);. 
2fb0: 20 20 20 20 7b 69 6e 74 20 61 20 3d 20 76 61 5f      {int a = va_
2fc0: 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a  arg_int(alist);.
2fd0: 20 20 20 20 20 20 69 6e 74 20 62 20 3d 20 76 61        int b = va
2fe0: 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b  _arg_int(alist);
2ff0: 0a 20 20 20 20 20 20 69 6e 74 20 63 20 3d 20 76  .      int c = v
3000: 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29  a_arg_int(alist)
3010: 3b 0a 20 20 20 20 20 20 69 6e 74 20 64 20 3d 20  ;.      int d = 
3020: 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74  va_arg_int(alist
3030: 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 65 20 3d  );.      int e =
3040: 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73   va_arg_int(alis
3050: 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 66 20  t);.      int f 
3060: 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69  = va_arg_int(ali
3070: 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 67  st);.      int g
3080: 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c   = va_arg_int(al
3090: 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20  ist);.      int 
30a0: 68 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61  h = va_arg_int(a
30b0: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74  list);.      int
30c0: 20 69 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28   i = va_arg_int(
30d0: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e  alist);.      in
30e0: 74 20 6a 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74  t j = va_arg_int
30f0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69  (alist);.      i
3100: 6e 74 20 6b 20 3d 20 76 61 5f 61 72 67 5f 69 6e  nt k = va_arg_in
3110: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
3120: 69 6e 74 20 6c 20 3d 20 76 61 5f 61 72 67 5f 69  int l = va_arg_i
3130: 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  nt(alist);.     
3140: 20 69 6e 74 20 6d 20 3d 20 76 61 5f 61 72 67 5f   int m = va_arg_
3150: 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  int(alist);.    
3160: 20 20 69 6e 74 20 6e 20 3d 20 76 61 5f 61 72 67    int n = va_arg
3170: 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  _int(alist);.   
3180: 20 20 20 69 6e 74 20 6f 20 3d 20 76 61 5f 61 72     int o = va_ar
3190: 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20  g_int(alist);.  
31a0: 20 20 20 20 69 6e 74 20 70 20 3d 20 76 61 5f 61      int p = va_a
31b0: 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20  rg_int(alist);. 
31c0: 20 20 20 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63       int r=a+b+c
31d0: 2b 64 2b 65 2b 66 2b 67 2b 68 2b 69 2b 6a 2b 6b  +d+e+f+g+h+i+j+k
31e0: 2b 6c 2b 6d 2b 6e 2b 6f 2b 70 3b 0a 20 20 20 20  +l+m+n+o+p;.    
31f0: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 69    fprintf(out,"i
3200: 6e 74 20 66 28 31 36 2a 69 6e 74 29 3a 28 25 64  nt f(16*int):(%d
3210: 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c  ,%d,%d,%d,%d,%d,
3220: 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25  %d,%d,%d,%d,%d,%
3230: 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 29 22 2c  d,%d,%d,%d,%d)",
3240: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61  .              a
3250: 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c 69  ,b,c,d,e,f,g,h,i
3260: 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e 2c 6f 2c 70 29 3b  ,j,k,l,m,n,o,p);
3270: 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75  .      fflush(ou
3280: 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74  t);.      va_ret
3290: 75 72 6e 5f 69 6e 74 28 61 6c 69 73 74 2c 20 72  urn_int(alist, r
32a0: 29 3b 0a 20 20 20 20 7d 7d 0a 0a 20 20 2f 2a 20  );.    }}..  /* 
32b0: 66 6c 6f 61 74 20 74 65 73 74 73 20 2a 2f 0a 20  float tests */. 
32c0: 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e   else if (curren
32d0: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76  t_function == (v
32e0: 6f 69 64 2a 29 26 66 5f 66 29 0a 20 20 20 20 7b  oid*)&f_f).    {
32f0: 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f  .      va_start_
3300: 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20  float(alist);.  
3310: 20 20 20 7b 66 6c 6f 61 74 20 61 20 3d 20 76 61     {float a = va
3320: 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74  _arg_float(alist
3330: 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 72  );.      float r
3340: 3d 61 2b 31 2e 30 3b 0a 20 20 20 20 20 20 66 70  =a+1.0;.      fp
3350: 72 69 6e 74 66 28 6f 75 74 2c 22 66 6c 6f 61 74  rintf(out,"float
3360: 20 66 28 66 6c 6f 61 74 29 3a 28 25 67 29 22 2c   f(float):(%g)",
3370: 61 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68  a);.      fflush
3380: 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f  (out);.      va_
3390: 72 65 74 75 72 6e 5f 66 6c 6f 61 74 28 61 6c 69  return_float(ali
33a0: 73 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20  st, r);.    }}. 
33b0: 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e   else if (curren
33c0: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76  t_function == (v
33d0: 6f 69 64 2a 29 26 66 5f 66 32 29 0a 20 20 20 20  oid*)&f_f2).    
33e0: 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74  {.      va_start
33f0: 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20  _float(alist);. 
3400: 20 20 20 20 7b 66 6c 6f 61 74 20 61 20 3d 20 76      {float a = v
3410: 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73  a_arg_float(alis
3420: 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20  t);.      float 
3430: 62 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74  b = va_arg_float
3440: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66  (alist);.      f
3450: 6c 6f 61 74 20 72 3d 61 2b 62 3b 0a 20 20 20 20  loat r=a+b;.    
3460: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 66    fprintf(out,"f
3470: 6c 6f 61 74 20 66 28 32 2a 66 6c 6f 61 74 29 3a  loat f(2*float):
3480: 28 25 67 2c 25 67 29 22 2c 61 2c 62 29 3b 0a 20  (%g,%g)",a,b);. 
3490: 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29       fflush(out)
34a0: 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72  ;.      va_retur
34b0: 6e 5f 66 6c 6f 61 74 28 61 6c 69 73 74 2c 20 72  n_float(alist, r
34c0: 29 3b 0a 20 20 20 20 7d 7d 0a 20 20 65 6c 73 65  );.    }}.  else
34d0: 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75 6e   if (current_fun
34e0: 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29  ction == (void*)
34f0: 26 66 5f 66 34 29 0a 20 20 20 20 7b 0a 20 20 20  &f_f4).    {.   
3500: 20 20 20 76 61 5f 73 74 61 72 74 5f 66 6c 6f 61     va_start_floa
3510: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b  t(alist);.     {
3520: 66 6c 6f 61 74 20 61 20 3d 20 76 61 5f 61 72 67  float a = va_arg
3530: 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20  _float(alist);. 
3540: 20 20 20 20 20 66 6c 6f 61 74 20 62 20 3d 20 76       float b = v
3550: 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73  a_arg_float(alis
3560: 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20  t);.      float 
3570: 63 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74  c = va_arg_float
3580: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66  (alist);.      f
3590: 6c 6f 61 74 20 64 20 3d 20 76 61 5f 61 72 67 5f  loat d = va_arg_
35a0: 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20  float(alist);.  
35b0: 20 20 20 20 66 6c 6f 61 74 20 72 3d 61 2b 62 2b      float r=a+b+
35c0: 63 2b 64 3b 0a 20 20 20 20 20 20 66 70 72 69 6e  c+d;.      fprin
35d0: 74 66 28 6f 75 74 2c 22 66 6c 6f 61 74 20 66 28  tf(out,"float f(
35e0: 34 2a 66 6c 6f 61 74 29 3a 28 25 67 2c 25 67 2c  4*float):(%g,%g,
35f0: 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 29  %g,%g)",a,b,c,d)
3600: 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f  ;.      fflush(o
3610: 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65  ut);.      va_re
3620: 74 75 72 6e 5f 66 6c 6f 61 74 28 61 6c 69 73 74  turn_float(alist
3630: 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20 65  , r);.    }}.  e
3640: 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f  lse if (current_
3650: 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69  function == (voi
3660: 64 2a 29 26 66 5f 66 38 29 0a 20 20 20 20 7b 0a  d*)&f_f8).    {.
3670: 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f 66        va_start_f
3680: 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  loat(alist);.   
3690: 20 20 7b 66 6c 6f 61 74 20 61 20 3d 20 76 61 5f    {float a = va_
36a0: 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29  arg_float(alist)
36b0: 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 62 20  ;.      float b 
36c0: 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61  = va_arg_float(a
36d0: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f  list);.      flo
36e0: 61 74 20 63 20 3d 20 76 61 5f 61 72 67 5f 66 6c  at c = va_arg_fl
36f0: 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  oat(alist);.    
3700: 20 20 66 6c 6f 61 74 20 64 20 3d 20 76 61 5f 61    float d = va_a
3710: 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b  rg_float(alist);
3720: 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 65 20 3d  .      float e =
3730: 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c   va_arg_float(al
3740: 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61  ist);.      floa
3750: 74 20 66 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f  t f = va_arg_flo
3760: 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  at(alist);.     
3770: 20 66 6c 6f 61 74 20 67 20 3d 20 76 61 5f 61 72   float g = va_ar
3780: 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a  g_float(alist);.
3790: 20 20 20 20 20 20 66 6c 6f 61 74 20 68 20 3d 20        float h = 
37a0: 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69  va_arg_float(ali
37b0: 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74  st);.      float
37c0: 20 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b 66 2b 67   r=a+b+c+d+e+f+g
37d0: 2b 68 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74  +h;.      fprint
37e0: 66 28 6f 75 74 2c 22 66 6c 6f 61 74 20 66 28 38  f(out,"float f(8
37f0: 2a 66 6c 6f 61 74 29 3a 28 25 67 2c 25 67 2c 25  *float):(%g,%g,%
3800: 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67  g,%g,%g,%g,%g,%g
3810: 29 22 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67  )",a,b,c,d,e,f,g
3820: 2c 68 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73  ,h);.      fflus
3830: 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61  h(out);.      va
3840: 5f 72 65 74 75 72 6e 5f 66 6c 6f 61 74 28 61 6c  _return_float(al
3850: 69 73 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a  ist, r);.    }}.
3860: 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65    else if (curre
3870: 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28  nt_function == (
3880: 76 6f 69 64 2a 29 26 66 5f 66 31 36 29 0a 20 20  void*)&f_f16).  
3890: 20 20 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61    {.      va_sta
38a0: 72 74 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b  rt_float(alist);
38b0: 0a 20 20 20 20 20 7b 66 6c 6f 61 74 20 61 20 3d  .     {float a =
38c0: 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c   va_arg_float(al
38d0: 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61  ist);.      floa
38e0: 74 20 62 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f  t b = va_arg_flo
38f0: 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  at(alist);.     
3900: 20 66 6c 6f 61 74 20 63 20 3d 20 76 61 5f 61 72   float c = va_ar
3910: 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a  g_float(alist);.
3920: 20 20 20 20 20 20 66 6c 6f 61 74 20 64 20 3d 20        float d = 
3930: 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69  va_arg_float(ali
3940: 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74  st);.      float
3950: 20 65 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61   e = va_arg_floa
3960: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
3970: 66 6c 6f 61 74 20 66 20 3d 20 76 61 5f 61 72 67  float f = va_arg
3980: 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20  _float(alist);. 
3990: 20 20 20 20 20 66 6c 6f 61 74 20 67 20 3d 20 76       float g = v
39a0: 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73  a_arg_float(alis
39b0: 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20  t);.      float 
39c0: 68 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74  h = va_arg_float
39d0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66  (alist);.      f
39e0: 6c 6f 61 74 20 69 20 3d 20 76 61 5f 61 72 67 5f  loat i = va_arg_
39f0: 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20  float(alist);.  
3a00: 20 20 20 20 66 6c 6f 61 74 20 6a 20 3d 20 76 61      float j = va
3a10: 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74  _arg_float(alist
3a20: 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 6b  );.      float k
3a30: 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28   = va_arg_float(
3a40: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c  alist);.      fl
3a50: 6f 61 74 20 6c 20 3d 20 76 61 5f 61 72 67 5f 66  oat l = va_arg_f
3a60: 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  loat(alist);.   
3a70: 20 20 20 66 6c 6f 61 74 20 6d 20 3d 20 76 61 5f     float m = va_
3a80: 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29  arg_float(alist)
3a90: 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 6e 20  ;.      float n 
3aa0: 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61  = va_arg_float(a
3ab0: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f  list);.      flo
3ac0: 61 74 20 6f 20 3d 20 76 61 5f 61 72 67 5f 66 6c  at o = va_arg_fl
3ad0: 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  oat(alist);.    
3ae0: 20 20 66 6c 6f 61 74 20 70 20 3d 20 76 61 5f 61    float p = va_a
3af0: 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b  rg_float(alist);
3b00: 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 72 3d 61  .      float r=a
3b10: 2b 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 2b 69  +b+c+d+e+f+g+h+i
3b20: 2b 6a 2b 6b 2b 6c 2b 6d 2b 6e 2b 6f 2b 70 3b 0a  +j+k+l+m+n+o+p;.
3b30: 20 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75        fprintf(ou
3b40: 74 2c 22 66 6c 6f 61 74 20 66 28 31 36 2a 66 6c  t,"float f(16*fl
3b50: 6f 61 74 29 3a 28 25 67 2c 25 67 2c 25 67 2c 25  oat):(%g,%g,%g,%
3b60: 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67  g,%g,%g,%g,%g,%g
3b70: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
3b80: 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 2c  %g,%g)",a,b,c,d,
3b90: 65 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c 6c 2c  e,f,g,h,i,j,k,l,
3ba0: 6d 2c 6e 2c 6f 2c 70 29 3b 0a 20 20 20 20 20 20  m,n,o,p);.      
3bb0: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20  fflush(out);.   
3bc0: 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 66 6c 6f     va_return_flo
3bd0: 61 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20  at(alist, r);.  
3be0: 20 20 7d 7d 0a 0a 20 20 2f 2a 20 64 6f 75 62 6c    }}..  /* doubl
3bf0: 65 20 74 65 73 74 73 20 2a 2f 0a 20 20 65 6c 73  e tests */.  els
3c00: 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75  e if (current_fu
3c10: 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a  nction == (void*
3c20: 29 26 64 5f 64 29 0a 20 20 20 20 7b 0a 20 20 20  )&d_d).    {.   
3c30: 20 20 20 76 61 5f 73 74 61 72 74 5f 64 6f 75 62     va_start_doub
3c40: 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  le(alist);.     
3c50: 7b 64 6f 75 62 6c 65 20 61 20 3d 20 76 61 5f 61  {double a = va_a
3c60: 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29  rg_double(alist)
3c70: 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 72  ;.      double r
3c80: 3d 61 2b 31 2e 30 3b 0a 20 20 20 20 20 20 66 70  =a+1.0;.      fp
3c90: 72 69 6e 74 66 28 6f 75 74 2c 22 64 6f 75 62 6c  rintf(out,"doubl
3ca0: 65 20 66 28 64 6f 75 62 6c 65 29 3a 28 25 67 29  e f(double):(%g)
3cb0: 22 2c 61 29 3b 0a 20 20 20 20 20 20 66 66 6c 75  ",a);.      fflu
3cc0: 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76  sh(out);.      v
3cd0: 61 5f 72 65 74 75 72 6e 5f 64 6f 75 62 6c 65 28  a_return_double(
3ce0: 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20 20 20 7d  alist, r);.    }
3cf0: 7d 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72  }.  else if (cur
3d00: 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d  rent_function ==
3d10: 20 28 76 6f 69 64 2a 29 26 64 5f 64 32 29 0a 20   (void*)&d_d2). 
3d20: 20 20 20 7b 0a 20 20 20 20 20 20 76 61 5f 73 74     {.      va_st
3d30: 61 72 74 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  art_double(alist
3d40: 29 3b 0a 20 20 20 20 20 7b 64 6f 75 62 6c 65 20  );.     {double 
3d50: 61 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c  a = va_arg_doubl
3d60: 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  e(alist);.      
3d70: 64 6f 75 62 6c 65 20 62 20 3d 20 76 61 5f 61 72  double b = va_ar
3d80: 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b  g_double(alist);
3d90: 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 72 3d  .      double r=
3da0: 61 2b 62 3b 0a 20 20 20 20 20 20 66 70 72 69 6e  a+b;.      fprin
3db0: 74 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65 20 66  tf(out,"double f
3dc0: 28 32 2a 64 6f 75 62 6c 65 29 3a 28 25 67 2c 25  (2*double):(%g,%
3dd0: 67 29 22 2c 61 2c 62 29 3b 0a 20 20 20 20 20 20  g)",a,b);.      
3de0: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20  fflush(out);.   
3df0: 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 64 6f 75     va_return_dou
3e00: 62 6c 65 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20  ble(alist, r);. 
3e10: 20 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20     }}.  else if 
3e20: 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f  (current_functio
3e30: 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 64 5f 64  n == (void*)&d_d
3e40: 34 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76  4).    {.      v
3e50: 61 5f 73 74 61 72 74 5f 64 6f 75 62 6c 65 28 61  a_start_double(a
3e60: 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 64 6f 75  list);.     {dou
3e70: 62 6c 65 20 61 20 3d 20 76 61 5f 61 72 67 5f 64  ble a = va_arg_d
3e80: 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20  ouble(alist);.  
3e90: 20 20 20 20 64 6f 75 62 6c 65 20 62 20 3d 20 76      double b = v
3ea0: 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69  a_arg_double(ali
3eb0: 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c  st);.      doubl
3ec0: 65 20 63 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75  e c = va_arg_dou
3ed0: 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  ble(alist);.    
3ee0: 20 20 64 6f 75 62 6c 65 20 64 20 3d 20 76 61 5f    double d = va_
3ef0: 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  arg_double(alist
3f00: 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20  );.      double 
3f10: 72 3d 61 2b 62 2b 63 2b 64 3b 0a 20 20 20 20 20  r=a+b+c+d;.     
3f20: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 64 6f   fprintf(out,"do
3f30: 75 62 6c 65 20 66 28 34 2a 64 6f 75 62 6c 65 29  uble f(4*double)
3f40: 3a 28 25 67 2c 25 67 2c 25 67 2c 25 67 29 22 2c  :(%g,%g,%g,%g)",
3f50: 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 20 20 20 20  a,b,c,d);.      
3f60: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20  fflush(out);.   
3f70: 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 64 6f 75     va_return_dou
3f80: 62 6c 65 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20  ble(alist, r);. 
3f90: 20 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20     }}.  else if 
3fa0: 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f  (current_functio
3fb0: 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 64 5f 64  n == (void*)&d_d
3fc0: 38 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76  8).    {.      v
3fd0: 61 5f 73 74 61 72 74 5f 64 6f 75 62 6c 65 28 61  a_start_double(a
3fe0: 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 64 6f 75  list);.     {dou
3ff0: 62 6c 65 20 61 20 3d 20 76 61 5f 61 72 67 5f 64  ble a = va_arg_d
4000: 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20  ouble(alist);.  
4010: 20 20 20 20 64 6f 75 62 6c 65 20 62 20 3d 20 76      double b = v
4020: 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69  a_arg_double(ali
4030: 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c  st);.      doubl
4040: 65 20 63 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75  e c = va_arg_dou
4050: 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  ble(alist);.    
4060: 20 20 64 6f 75 62 6c 65 20 64 20 3d 20 76 61 5f    double d = va_
4070: 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  arg_double(alist
4080: 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20  );.      double 
4090: 65 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c  e = va_arg_doubl
40a0: 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  e(alist);.      
40b0: 64 6f 75 62 6c 65 20 66 20 3d 20 76 61 5f 61 72  double f = va_ar
40c0: 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b  g_double(alist);
40d0: 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 67 20  .      double g 
40e0: 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28  = va_arg_double(
40f0: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f  alist);.      do
4100: 75 62 6c 65 20 68 20 3d 20 76 61 5f 61 72 67 5f  uble h = va_arg_
4110: 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20  double(alist);. 
4120: 20 20 20 20 20 64 6f 75 62 6c 65 20 72 3d 61 2b       double r=a+
4130: 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 3b 0a 20  b+c+d+e+f+g+h;. 
4140: 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74       fprintf(out
4150: 2c 22 64 6f 75 62 6c 65 20 66 28 38 2a 64 6f 75  ,"double f(8*dou
4160: 62 6c 65 29 3a 28 25 67 2c 25 67 2c 25 67 2c 25  ble):(%g,%g,%g,%
4170: 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 29 22 2c  g,%g,%g,%g,%g)",
4180: 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 29  a,b,c,d,e,f,g,h)
4190: 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f  ;.      fflush(o
41a0: 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65  ut);.      va_re
41b0: 74 75 72 6e 5f 64 6f 75 62 6c 65 28 61 6c 69 73  turn_double(alis
41c0: 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20  t, r);.    }}.  
41d0: 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74  else if (current
41e0: 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f  _function == (vo
41f0: 69 64 2a 29 26 64 5f 64 31 36 29 0a 20 20 20 20  id*)&d_d16).    
4200: 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74  {.      va_start
4210: 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a  _double(alist);.
4220: 20 20 20 20 20 7b 64 6f 75 62 6c 65 20 61 20 3d       {double a =
4230: 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61   va_arg_double(a
4240: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75  list);.      dou
4250: 62 6c 65 20 62 20 3d 20 76 61 5f 61 72 67 5f 64  ble b = va_arg_d
4260: 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20  ouble(alist);.  
4270: 20 20 20 20 64 6f 75 62 6c 65 20 63 20 3d 20 76      double c = v
4280: 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69  a_arg_double(ali
4290: 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c  st);.      doubl
42a0: 65 20 64 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75  e d = va_arg_dou
42b0: 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  ble(alist);.    
42c0: 20 20 64 6f 75 62 6c 65 20 65 20 3d 20 76 61 5f    double e = va_
42d0: 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  arg_double(alist
42e0: 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20  );.      double 
42f0: 66 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c  f = va_arg_doubl
4300: 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  e(alist);.      
4310: 64 6f 75 62 6c 65 20 67 20 3d 20 76 61 5f 61 72  double g = va_ar
4320: 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b  g_double(alist);
4330: 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 68 20  .      double h 
4340: 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28  = va_arg_double(
4350: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f  alist);.      do
4360: 75 62 6c 65 20 69 20 3d 20 76 61 5f 61 72 67 5f  uble i = va_arg_
4370: 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20  double(alist);. 
4380: 20 20 20 20 20 64 6f 75 62 6c 65 20 6a 20 3d 20       double j = 
4390: 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c  va_arg_double(al
43a0: 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62  ist);.      doub
43b0: 6c 65 20 6b 20 3d 20 76 61 5f 61 72 67 5f 64 6f  le k = va_arg_do
43c0: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
43d0: 20 20 20 64 6f 75 62 6c 65 20 6c 20 3d 20 76 61     double l = va
43e0: 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73  _arg_double(alis
43f0: 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65  t);.      double
4400: 20 6d 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62   m = va_arg_doub
4410: 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  le(alist);.     
4420: 20 64 6f 75 62 6c 65 20 6e 20 3d 20 76 61 5f 61   double n = va_a
4430: 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29  rg_double(alist)
4440: 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 6f  ;.      double o
4450: 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65   = va_arg_double
4460: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64  (alist);.      d
4470: 6f 75 62 6c 65 20 70 20 3d 20 76 61 5f 61 72 67  ouble p = va_arg
4480: 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a  _double(alist);.
4490: 20 20 20 20 20 20 64 6f 75 62 6c 65 20 72 3d 61        double r=a
44a0: 2b 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 2b 69  +b+c+d+e+f+g+h+i
44b0: 2b 6a 2b 6b 2b 6c 2b 6d 2b 6e 2b 6f 2b 70 3b 0a  +j+k+l+m+n+o+p;.
44c0: 20 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75        fprintf(ou
44d0: 74 2c 22 64 6f 75 62 6c 65 20 66 28 31 36 2a 64  t,"double f(16*d
44e0: 6f 75 62 6c 65 29 3a 28 25 67 2c 25 67 2c 25 67  ouble):(%g,%g,%g
44f0: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
4500: 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25  %g,%g,%g,%g,%g,%
4510: 67 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c  g,%g,%g)",a,b,c,
4520: 64 2c 65 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c  d,e,f,g,h,i,j,k,
4530: 6c 2c 6d 2c 6e 2c 6f 2c 70 29 3b 0a 20 20 20 20  l,m,n,o,p);.    
4540: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
4550: 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 64       va_return_d
4560: 6f 75 62 6c 65 28 61 6c 69 73 74 2c 20 72 29 3b  ouble(alist, r);
4570: 0a 20 20 20 20 7d 7d 0a 0a 20 20 2f 2a 20 70 6f  .    }}..  /* po
4580: 69 6e 74 65 72 20 74 65 73 74 73 20 2a 2f 0a 20  inter tests */. 
4590: 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e   else if (curren
45a0: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76  t_function == (v
45b0: 6f 69 64 2a 29 26 76 70 5f 76 70 64 70 63 70 73  oid*)&vp_vpdpcps
45c0: 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76  p).    {.      v
45d0: 61 5f 73 74 61 72 74 5f 70 74 72 28 61 6c 69 73  a_start_ptr(alis
45e0: 74 2c 20 76 6f 69 64 2a 29 3b 0a 20 20 20 20 20  t, void*);.     
45f0: 7b 76 6f 69 64 2a 20 61 20 3d 20 76 61 5f 61 72  {void* a = va_ar
4600: 67 5f 70 74 72 28 61 6c 69 73 74 2c 20 76 6f 69  g_ptr(alist, voi
4610: 64 2a 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c  d*);.      doubl
4620: 65 2a 20 62 20 3d 20 76 61 5f 61 72 67 5f 70 74  e* b = va_arg_pt
4630: 72 28 61 6c 69 73 74 2c 20 64 6f 75 62 6c 65 2a  r(alist, double*
4640: 29 3b 0a 20 20 20 20 20 20 63 68 61 72 2a 20 63  );.      char* c
4650: 20 3d 20 76 61 5f 61 72 67 5f 70 74 72 28 61 6c   = va_arg_ptr(al
4660: 69 73 74 2c 20 63 68 61 72 2a 29 3b 0a 20 20 20  ist, char*);.   
4670: 20 20 20 49 6e 74 2a 20 64 20 3d 20 76 61 5f 61     Int* d = va_a
4680: 72 67 5f 70 74 72 28 61 6c 69 73 74 2c 20 49 6e  rg_ptr(alist, In
4690: 74 2a 29 3b 0a 20 20 20 20 20 20 76 6f 69 64 2a  t*);.      void*
46a0: 20 72 65 74 20 3d 20 28 63 68 61 72 2a 29 62 20   ret = (char*)b 
46b0: 2b 20 31 3b 0a 20 20 20 20 20 20 66 70 72 69 6e  + 1;.      fprin
46c0: 74 66 28 6f 75 74 2c 22 76 6f 69 64 2a 20 66 28  tf(out,"void* f(
46d0: 76 6f 69 64 2a 2c 64 6f 75 62 6c 65 2a 2c 63 68  void*,double*,ch
46e0: 61 72 2a 2c 49 6e 74 2a 29 3a 28 30 78 25 6c 78  ar*,Int*):(0x%lx
46f0: 2c 30 78 25 6c 78 2c 30 78 25 6c 78 2c 30 78 25  ,0x%lx,0x%lx,0x%
4700: 6c 78 29 22 2c 28 6c 6f 6e 67 29 61 2c 28 6c 6f  lx)",(long)a,(lo
4710: 6e 67 29 62 2c 28 6c 6f 6e 67 29 63 2c 28 6c 6f  ng)b,(long)c,(lo
4720: 6e 67 29 64 29 3b 0a 20 20 20 20 20 20 66 66 6c  ng)d);.      ffl
4730: 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20  ush(out);.      
4740: 76 61 5f 72 65 74 75 72 6e 5f 70 74 72 28 61 6c  va_return_ptr(al
4750: 69 73 74 2c 20 76 6f 69 64 2a 2c 20 72 65 74 29  ist, void*, ret)
4760: 3b 0a 20 20 20 20 7d 7d 0a 0a 20 20 2f 2a 20 6d  ;.    }}..  /* m
4770: 69 78 65 64 20 6e 75 6d 62 65 72 20 74 65 73 74  ixed number test
4780: 73 20 2a 2f 0a 20 20 65 6c 73 65 20 69 66 20 28  s */.  else if (
4790: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
47a0: 20 3d 3d 20 28 76 6f 69 64 2a 29 26 75 63 5f 75   == (void*)&uc_u
47b0: 63 73 69 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20  csil).    {.    
47c0: 20 20 76 61 5f 73 74 61 72 74 5f 75 63 68 61 72    va_start_uchar
47d0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 75  (alist);.     {u
47e0: 63 68 61 72 20 61 20 3d 20 76 61 5f 61 72 67 5f  char a = va_arg_
47f0: 75 63 68 61 72 28 61 6c 69 73 74 29 3b 0a 20 20  uchar(alist);.  
4800: 20 20 20 20 75 73 68 6f 72 74 20 62 20 3d 20 76      ushort b = v
4810: 61 5f 61 72 67 5f 75 73 68 6f 72 74 28 61 6c 69  a_arg_ushort(ali
4820: 73 74 29 3b 0a 20 20 20 20 20 20 75 69 6e 74 20  st);.      uint 
4830: 63 20 3d 20 76 61 5f 61 72 67 5f 75 69 6e 74 28  c = va_arg_uint(
4840: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 75 6c  alist);.      ul
4850: 6f 6e 67 20 64 20 3d 20 76 61 5f 61 72 67 5f 75  ong d = va_arg_u
4860: 6c 6f 6e 67 28 61 6c 69 73 74 29 3b 0a 20 20 20  long(alist);.   
4870: 20 20 20 75 63 68 61 72 20 72 20 3d 20 28 75 63     uchar r = (uc
4880: 68 61 72 29 2d 31 3b 0a 20 20 20 20 20 20 66 70  har)-1;.      fp
4890: 72 69 6e 74 66 28 6f 75 74 2c 22 75 63 68 61 72  rintf(out,"uchar
48a0: 20 66 28 75 63 68 61 72 2c 75 73 68 6f 72 74 2c   f(uchar,ushort,
48b0: 75 69 6e 74 2c 75 6c 6f 6e 67 29 3a 28 25 75 2c  uint,ulong):(%u,
48c0: 25 75 2c 25 75 2c 25 6c 75 29 22 2c 61 2c 62 2c  %u,%u,%lu)",a,b,
48d0: 63 2c 64 29 3b 0a 20 20 20 20 20 20 66 66 6c 75  c,d);.      fflu
48e0: 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76  sh(out);.      v
48f0: 61 5f 72 65 74 75 72 6e 5f 75 63 68 61 72 28 61  a_return_uchar(a
4900: 6c 69 73 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d  list, r);.    }}
4910: 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72  .  else if (curr
4920: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20  ent_function == 
4930: 28 76 6f 69 64 2a 29 26 64 5f 69 69 64 64 29 0a  (void*)&d_iidd).
4940: 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61 5f 73      {.      va_s
4950: 74 61 72 74 5f 64 6f 75 62 6c 65 28 61 6c 69 73  tart_double(alis
4960: 74 29 3b 0a 20 20 20 20 20 7b 69 6e 74 20 61 20  t);.     {int a 
4970: 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69  = va_arg_int(ali
4980: 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 62  st);.      int b
4990: 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c   = va_arg_int(al
49a0: 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62  ist);.      doub
49b0: 6c 65 20 63 20 3d 20 76 61 5f 61 72 67 5f 64 6f  le c = va_arg_do
49c0: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
49d0: 20 20 20 64 6f 75 62 6c 65 20 64 20 3d 20 76 61     double d = va
49e0: 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73  _arg_double(alis
49f0: 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65  t);.      double
4a00: 20 72 3d 61 2b 62 2b 63 2b 64 3b 0a 20 20 20 20   r=a+b+c+d;.    
4a10: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 64    fprintf(out,"d
4a20: 6f 75 62 6c 65 20 66 28 69 6e 74 2c 69 6e 74 2c  ouble f(int,int,
4a30: 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 29 3a 28  double,double):(
4a40: 25 64 2c 25 64 2c 25 67 2c 25 67 29 22 2c 61 2c  %d,%d,%g,%g)",a,
4a50: 62 2c 63 2c 64 29 3b 0a 20 20 20 20 20 20 66 66  b,c,d);.      ff
4a60: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 20  lush(out);.     
4a70: 20 76 61 5f 72 65 74 75 72 6e 5f 64 6f 75 62 6c   va_return_doubl
4a80: 65 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20 20  e(alist, r);.   
4a90: 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20 28 63   }}.  else if (c
4aa0: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
4ab0: 3d 3d 20 28 76 6f 69 64 2a 29 26 64 5f 69 64 69  == (void*)&d_idi
4ac0: 64 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76  d).    {.      v
4ad0: 61 5f 73 74 61 72 74 5f 64 6f 75 62 6c 65 28 61  a_start_double(a
4ae0: 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 69 6e 74  list);.     {int
4af0: 20 61 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28   a = va_arg_int(
4b00: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f  alist);.      do
4b10: 75 62 6c 65 20 62 20 3d 20 76 61 5f 61 72 67 5f  uble b = va_arg_
4b20: 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20  double(alist);. 
4b30: 20 20 20 20 20 69 6e 74 20 63 20 3d 20 76 61 5f       int c = va_
4b40: 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a  arg_int(alist);.
4b50: 20 20 20 20 20 20 64 6f 75 62 6c 65 20 64 20 3d        double d =
4b60: 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61   va_arg_double(a
4b70: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75  list);.      dou
4b80: 62 6c 65 20 72 3d 61 2b 62 2b 63 2b 64 3b 0a 20  ble r=a+b+c+d;. 
4b90: 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74       fprintf(out
4ba0: 2c 22 64 6f 75 62 6c 65 20 66 28 69 6e 74 2c 64  ,"double f(int,d
4bb0: 6f 75 62 6c 65 2c 69 6e 74 2c 64 6f 75 62 6c 65  ouble,int,double
4bc0: 29 3a 28 25 64 2c 25 67 2c 25 64 2c 25 67 29 22  ):(%d,%g,%d,%g)"
4bd0: 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 20 20 20  ,a,b,c,d);.     
4be0: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
4bf0: 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 64 6f      va_return_do
4c00: 75 62 6c 65 28 61 6c 69 73 74 2c 20 72 29 3b 0a  uble(alist, r);.
4c10: 20 20 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66      }}.  else if
4c20: 20 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69   (current_functi
4c30: 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 75 73  on == (void*)&us
4c40: 5f 63 64 63 64 29 0a 20 20 20 20 7b 0a 20 20 20  _cdcd).    {.   
4c50: 20 20 20 76 61 5f 73 74 61 72 74 5f 75 73 68 6f     va_start_usho
4c60: 72 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  rt(alist);.     
4c70: 7b 63 68 61 72 20 61 20 3d 20 76 61 5f 61 72 67  {char a = va_arg
4c80: 5f 63 68 61 72 28 61 6c 69 73 74 29 3b 0a 20 20  _char(alist);.  
4c90: 20 20 20 20 64 6f 75 62 6c 65 20 62 20 3d 20 76      double b = v
4ca0: 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69  a_arg_double(ali
4cb0: 73 74 29 3b 0a 20 20 20 20 20 20 63 68 61 72 20  st);.      char 
4cc0: 63 20 3d 20 76 61 5f 61 72 67 5f 63 68 61 72 28  c = va_arg_char(
4cd0: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f  alist);.      do
4ce0: 75 62 6c 65 20 64 20 3d 20 76 61 5f 61 72 67 5f  uble d = va_arg_
4cf0: 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20  double(alist);. 
4d00: 20 20 20 20 20 75 73 68 6f 72 74 20 72 20 3d 20       ushort r = 
4d10: 28 75 73 68 6f 72 74 29 28 61 20 2b 20 62 20 2b  (ushort)(a + b +
4d20: 20 63 20 2b 20 64 29 3b 0a 20 20 20 20 20 20 66   c + d);.      f
4d30: 70 72 69 6e 74 66 28 6f 75 74 2c 22 75 73 68 6f  printf(out,"usho
4d40: 72 74 20 66 28 63 68 61 72 2c 64 6f 75 62 6c 65  rt f(char,double
4d50: 2c 63 68 61 72 2c 64 6f 75 62 6c 65 29 3a 28 27  ,char,double):('
4d60: 25 63 27 2c 25 67 2c 27 25 63 27 2c 25 67 29 22  %c',%g,'%c',%g)"
4d70: 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 20 20 20  ,a,b,c,d);.     
4d80: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
4d90: 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 75 73      va_return_us
4da0: 68 6f 72 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a  hort(alist, r);.
4db0: 20 20 20 20 7d 7d 0a 23 69 66 64 65 66 20 48 41      }}.#ifdef HA
4dc0: 56 45 5f 4c 4f 4e 47 5f 4c 4f 4e 47 5f 49 4e 54  VE_LONG_LONG_INT
4dd0: 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72  .  else if (curr
4de0: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20  ent_function == 
4df0: 28 76 6f 69 64 2a 29 26 6c 6c 5f 66 6c 6c 69 29  (void*)&ll_flli)
4e00: 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61 5f  .    {.      va_
4e10: 73 74 61 72 74 5f 6c 6f 6e 67 6c 6f 6e 67 28 61  start_longlong(a
4e20: 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 66 6c 6f  list);.     {flo
4e30: 61 74 20 61 20 3d 20 76 61 5f 61 72 67 5f 66 6c  at a = va_arg_fl
4e40: 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  oat(alist);.    
4e50: 20 20 6c 6f 6e 67 20 6c 6f 6e 67 20 62 20 3d 20    long long b = 
4e60: 76 61 5f 61 72 67 5f 6c 6f 6e 67 6c 6f 6e 67 28  va_arg_longlong(
4e70: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e  alist);.      in
4e80: 74 20 63 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74  t c = va_arg_int
4e90: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 6c  (alist);.      l
4ea0: 6f 6e 67 20 6c 6f 6e 67 20 72 20 3d 20 28 6c 6f  ong long r = (lo
4eb0: 6e 67 20 6c 6f 6e 67 29 28 69 6e 74 29 61 20 2b  ng long)(int)a +
4ec0: 20 62 20 2b 20 28 6c 6f 6e 67 20 6c 6f 6e 67 29   b + (long long)
4ed0: 63 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66  c;.      fprintf
4ee0: 28 6f 75 74 2c 22 6c 6f 6e 67 20 6c 6f 6e 67 20  (out,"long long 
4ef0: 66 28 66 6c 6f 61 74 2c 6c 6f 6e 67 20 6c 6f 6e  f(float,long lon
4f00: 67 2c 69 6e 74 29 3a 28 25 67 2c 30 78 25 6c 78  g,int):(%g,0x%lx
4f10: 25 30 38 6c 78 2c 30 78 25 6c 78 29 22 2c 61 2c  %08lx,0x%lx)",a,
4f20: 28 6c 6f 6e 67 29 28 62 3e 3e 33 32 29 2c 28 6c  (long)(b>>32),(l
4f30: 6f 6e 67 29 28 62 26 30 78 66 66 66 66 66 66 66  ong)(b&0xfffffff
4f40: 66 29 2c 28 6c 6f 6e 67 29 63 29 3b 0a 20 20 20  f),(long)c);.   
4f50: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
4f60: 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f        va_return_
4f70: 6c 6f 6e 67 6c 6f 6e 67 28 61 6c 69 73 74 2c 20  longlong(alist, 
4f80: 72 29 3b 0a 20 20 20 20 7d 7d 0a 23 65 6e 64 69  r);.    }}.#endi
4f90: 66 0a 0a 23 69 66 6e 64 65 66 20 53 4b 49 50 5f  f..#ifndef SKIP_
4fa0: 53 54 52 55 43 54 53 0a 20 20 2f 2a 20 73 74 72  STRUCTS.  /* str
4fb0: 75 63 74 75 72 65 20 74 65 73 74 73 20 2a 2f 0a  ucture tests */.
4fc0: 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65    else if (curre
4fd0: 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28  nt_function == (
4fe0: 76 6f 69 64 2a 29 26 49 5f 49 49 49 29 0a 20 20  void*)&I_III).  
4ff0: 20 20 7b 0a 20 20 20 20 20 20 49 6e 74 20 61 3b    {.      Int a;
5000: 0a 20 20 20 20 20 20 49 6e 74 20 62 3b 0a 20 20  .      Int b;.  
5010: 20 20 20 20 49 6e 74 20 63 3b 0a 20 20 20 20 20      Int c;.     
5020: 20 49 6e 74 20 72 3b 0a 20 20 20 20 20 20 76 61   Int r;.      va
5030: 5f 73 74 61 72 74 5f 73 74 72 75 63 74 28 61 6c  _start_struct(al
5040: 69 73 74 2c 20 49 6e 74 2c 20 31 29 3b 0a 20 20  ist, Int, 1);.  
5050: 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67 5f 73      a = va_arg_s
5060: 74 72 75 63 74 28 61 6c 69 73 74 2c 20 49 6e 74  truct(alist, Int
5070: 29 3b 0a 20 20 20 20 20 20 62 20 3d 20 76 61 5f  );.      b = va_
5080: 61 72 67 5f 73 74 72 75 63 74 28 61 6c 69 73 74  arg_struct(alist
5090: 2c 20 49 6e 74 29 3b 0a 20 20 20 20 20 20 63 20  , Int);.      c 
50a0: 3d 20 76 61 5f 61 72 67 5f 73 74 72 75 63 74 28  = va_arg_struct(
50b0: 61 6c 69 73 74 2c 20 49 6e 74 29 3b 0a 20 20 20  alist, Int);.   
50c0: 20 20 20 72 2e 78 20 3d 20 61 2e 78 20 2b 20 62     r.x = a.x + b
50d0: 2e 78 20 2b 20 63 2e 78 3b 0a 20 20 20 20 20 20  .x + c.x;.      
50e0: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 49 6e 74  fprintf(out,"Int
50f0: 20 66 28 49 6e 74 2c 49 6e 74 2c 49 6e 74 29 3a   f(Int,Int,Int):
5100: 28 7b 25 64 7d 2c 7b 25 64 7d 2c 7b 25 64 7d 29  ({%d},{%d},{%d})
5110: 22 2c 61 2e 78 2c 62 2e 78 2c 63 2e 78 29 3b 0a  ",a.x,b.x,c.x);.
5120: 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74        fflush(out
5130: 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75  );.      va_retu
5140: 72 6e 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c  rn_struct(alist,
5150: 20 49 6e 74 2c 20 72 29 3b 0a 20 20 20 20 7d 0a   Int, r);.    }.
5160: 23 69 66 6e 64 65 66 20 53 4b 49 50 5f 45 58 54  #ifndef SKIP_EXT
5170: 52 41 5f 53 54 52 55 43 54 53 0a 20 20 65 6c 73  RA_STRUCTS.  els
5180: 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75  e if (current_fu
5190: 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a  nction == (void*
51a0: 29 26 43 5f 43 64 43 29 0a 20 20 20 20 7b 0a 20  )&C_CdC).    {. 
51b0: 20 20 20 20 20 43 68 61 72 20 61 3b 0a 20 20 20       Char a;.   
51c0: 20 20 20 64 6f 75 62 6c 65 20 62 3b 0a 20 20 20     double b;.   
51d0: 20 20 20 43 68 61 72 20 63 3b 0a 20 20 20 20 20     Char c;.     
51e0: 20 43 68 61 72 20 72 3b 0a 20 20 20 20 20 20 76   Char r;.      v
51f0: 61 5f 73 74 61 72 74 5f 73 74 72 75 63 74 28 61  a_start_struct(a
5200: 6c 69 73 74 2c 20 43 68 61 72 2c 20 31 29 3b 0a  list, Char, 1);.
5210: 20 20 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67        a = va_arg
5220: 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 43  _struct(alist, C
5230: 68 61 72 29 3b 0a 20 20 20 20 20 20 62 20 3d 20  har);.      b = 
5240: 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c  va_arg_double(al
5250: 69 73 74 29 3b 0a 20 20 20 20 20 20 63 20 3d 20  ist);.      c = 
5260: 76 61 5f 61 72 67 5f 73 74 72 75 63 74 28 61 6c  va_arg_struct(al
5270: 69 73 74 2c 20 43 68 61 72 29 3b 0a 20 20 20 20  ist, Char);.    
5280: 20 20 72 2e 78 20 3d 20 28 61 2e 78 20 2b 20 63    r.x = (a.x + c
5290: 2e 78 29 2f 32 3b 0a 20 20 20 20 20 20 66 70 72  .x)/2;.      fpr
52a0: 69 6e 74 66 28 6f 75 74 2c 22 43 68 61 72 20 66  intf(out,"Char f
52b0: 28 43 68 61 72 2c 64 6f 75 62 6c 65 2c 43 68 61  (Char,double,Cha
52c0: 72 29 3a 28 7b 27 25 63 27 7d 2c 25 67 2c 7b 27  r):({'%c'},%g,{'
52d0: 25 63 27 7d 29 22 2c 61 2e 78 2c 62 2c 63 2e 78  %c'})",a.x,b,c.x
52e0: 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28  );.      fflush(
52f0: 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72  out);.      va_r
5300: 65 74 75 72 6e 5f 73 74 72 75 63 74 28 61 6c 69  eturn_struct(ali
5310: 73 74 2c 20 43 68 61 72 2c 20 72 29 3b 0a 20 20  st, Char, r);.  
5320: 20 20 7d 0a 20 20 65 6c 73 65 20 69 66 20 28 63    }.  else if (c
5330: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
5340: 3d 3d 20 28 76 6f 69 64 2a 29 26 46 5f 46 66 64  == (void*)&F_Ffd
5350: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 46 6c  ).    {.      Fl
5360: 6f 61 74 20 61 3b 0a 20 20 20 20 20 20 66 6c 6f  oat a;.      flo
5370: 61 74 20 62 3b 0a 20 20 20 20 20 20 64 6f 75 62  at b;.      doub
5380: 6c 65 20 63 3b 0a 20 20 20 20 20 20 46 6c 6f 61  le c;.      Floa
5390: 74 20 72 3b 0a 20 20 20 20 20 20 76 61 5f 73 74  t r;.      va_st
53a0: 61 72 74 5f 73 74 72 75 63 74 28 61 6c 69 73 74  art_struct(alist
53b0: 2c 20 46 6c 6f 61 74 2c 20 76 61 5f 77 6f 72 64  , Float, va_word
53c0: 5f 73 70 6c 69 74 74 61 62 6c 65 5f 31 28 66 6c  _splittable_1(fl
53d0: 6f 61 74 29 29 3b 0a 20 20 20 20 20 20 61 20 3d  oat));.      a =
53e0: 20 76 61 5f 61 72 67 5f 73 74 72 75 63 74 28 61   va_arg_struct(a
53f0: 6c 69 73 74 2c 20 46 6c 6f 61 74 29 3b 0a 20 20  list, Float);.  
5400: 20 20 20 20 62 20 3d 20 76 61 5f 61 72 67 5f 66      b = va_arg_f
5410: 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  loat(alist);.   
5420: 20 20 20 63 20 3d 20 76 61 5f 61 72 67 5f 64 6f     c = va_arg_do
5430: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
5440: 20 20 20 72 2e 78 20 3d 20 61 2e 78 20 2b 20 62     r.x = a.x + b
5450: 20 2b 20 63 3b 0a 20 20 20 20 20 20 66 70 72 69   + c;.      fpri
5460: 6e 74 66 28 6f 75 74 2c 22 46 6c 6f 61 74 20 66  ntf(out,"Float f
5470: 28 46 6c 6f 61 74 2c 66 6c 6f 61 74 2c 64 6f 75  (Float,float,dou
5480: 62 6c 65 29 3a 28 7b 25 67 7d 2c 25 67 2c 25 67  ble):({%g},%g,%g
5490: 29 22 2c 61 2e 78 2c 62 2c 63 29 3b 0a 20 20 20  )",a.x,b,c);.   
54a0: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
54b0: 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f        va_return_
54c0: 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 46 6c  struct(alist, Fl
54d0: 6f 61 74 2c 20 72 29 3b 0a 20 20 20 20 7d 0a 20  oat, r);.    }. 
54e0: 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e   else if (curren
54f0: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76  t_function == (v
5500: 6f 69 64 2a 29 26 44 5f 66 44 64 29 0a 20 20 20  oid*)&D_fDd).   
5510: 20 7b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 61   {.      float a
5520: 3b 0a 20 20 20 20 20 20 44 6f 75 62 6c 65 20 62  ;.      Double b
5530: 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 63  ;.      double c
5540: 3b 0a 20 20 20 20 20 20 44 6f 75 62 6c 65 20 72  ;.      Double r
5550: 3b 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74  ;.      va_start
5560: 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 44  _struct(alist, D
5570: 6f 75 62 6c 65 2c 20 76 61 5f 77 6f 72 64 5f 73  ouble, va_word_s
5580: 70 6c 69 74 74 61 62 6c 65 5f 31 28 64 6f 75 62  plittable_1(doub
5590: 6c 65 29 29 3b 0a 20 20 20 20 20 20 61 20 3d 20  le));.      a = 
55a0: 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69  va_arg_float(ali
55b0: 73 74 29 3b 0a 20 20 20 20 20 20 62 20 3d 20 76  st);.      b = v
55c0: 61 5f 61 72 67 5f 73 74 72 75 63 74 28 61 6c 69  a_arg_struct(ali
55d0: 73 74 2c 20 44 6f 75 62 6c 65 29 3b 0a 20 20 20  st, Double);.   
55e0: 20 20 20 63 20 3d 20 76 61 5f 61 72 67 5f 64 6f     c = va_arg_do
55f0: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
5600: 20 20 20 72 2e 78 20 3d 20 61 20 2b 20 62 2e 78     r.x = a + b.x
5610: 20 2b 20 63 3b 0a 20 20 20 20 20 20 66 70 72 69   + c;.      fpri
5620: 6e 74 66 28 6f 75 74 2c 22 44 6f 75 62 6c 65 20  ntf(out,"Double 
5630: 66 28 66 6c 6f 61 74 2c 44 6f 75 62 6c 65 2c 64  f(float,Double,d
5640: 6f 75 62 6c 65 29 3a 28 25 67 2c 7b 25 67 7d 2c  ouble):(%g,{%g},
5650: 25 67 29 22 2c 61 2c 62 2e 78 2c 63 29 3b 0a 20  %g)",a,b.x,c);. 
5660: 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29       fflush(out)
5670: 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72  ;.      va_retur
5680: 6e 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20  n_struct(alist, 
5690: 44 6f 75 62 6c 65 2c 20 72 29 3b 0a 20 20 20 20  Double, r);.    
56a0: 7d 0a 23 65 6e 64 69 66 0a 20 20 65 6c 73 65 20  }.#endif.  else 
56b0: 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75 6e 63  if (current_func
56c0: 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26  tion == (void*)&
56d0: 4a 5f 4a 69 4a 29 0a 20 20 20 20 7b 0a 20 20 20  J_JiJ).    {.   
56e0: 20 20 20 4a 20 61 3b 0a 20 20 20 20 20 20 69 6e     J a;.      in
56f0: 74 20 62 3b 0a 20 20 20 20 20 20 4a 20 63 3b 0a  t b;.      J c;.
5700: 20 20 20 20 20 20 4a 20 72 3b 0a 20 20 20 20 20        J r;.     
5710: 20 76 61 5f 73 74 61 72 74 5f 73 74 72 75 63 74   va_start_struct
5720: 28 61 6c 69 73 74 2c 20 4a 2c 20 76 61 5f 77 6f  (alist, J, va_wo
5730: 72 64 5f 73 70 6c 69 74 74 61 62 6c 65 5f 32 28  rd_splittable_2(
5740: 6c 6f 6e 67 2c 6c 6f 6e 67 29 29 3b 0a 20 20 20  long,long));.   
5750: 20 20 20 61 20 3d 20 76 61 5f 61 72 67 5f 73 74     a = va_arg_st
5760: 72 75 63 74 28 61 6c 69 73 74 2c 20 4a 29 3b 0a  ruct(alist, J);.
5770: 20 20 20 20 20 20 62 20 3d 20 76 61 5f 61 72 67        b = va_arg
5780: 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  _int(alist);.   
5790: 20 20 20 63 20 3d 20 76 61 5f 61 72 67 5f 73 74     c = va_arg_st
57a0: 72 75 63 74 28 61 6c 69 73 74 2c 20 4a 29 3b 0a  ruct(alist, J);.
57b0: 20 20 20 20 20 20 72 2e 6c 31 20 3d 20 61 2e 6c        r.l1 = a.l
57c0: 31 2b 63 2e 6c 31 3b 20 72 2e 6c 32 20 3d 20 61  1+c.l1; r.l2 = a
57d0: 2e 6c 32 2b 62 2b 63 2e 6c 32 3b 0a 20 20 20 20  .l2+b+c.l2;.    
57e0: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 4a    fprintf(out,"J
57f0: 20 66 28 4a 2c 69 6e 74 2c 4a 29 3a 28 7b 25 6c   f(J,int,J):({%l
5800: 64 2c 25 6c 64 7d 2c 25 64 2c 7b 25 6c 64 2c 25  d,%ld},%d,{%ld,%
5810: 6c 64 7d 29 22 2c 61 2e 6c 31 2c 61 2e 6c 32 2c  ld})",a.l1,a.l2,
5820: 62 2c 63 2e 6c 31 2c 63 2e 6c 32 29 3b 0a 20 20  b,c.l1,c.l2);.  
5830: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
5840: 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e  .      va_return
5850: 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 4a  _struct(alist, J
5860: 2c 20 72 29 3b 0a 20 20 20 20 7d 0a 23 69 66 6e  , r);.    }.#ifn
5870: 64 65 66 20 53 4b 49 50 5f 45 58 54 52 41 5f 53  def SKIP_EXTRA_S
5880: 54 52 55 43 54 53 0a 20 20 65 6c 73 65 20 69 66  TRUCTS.  else if
5890: 20 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69   (current_functi
58a0: 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 54 5f  on == (void*)&T_
58b0: 54 63 54 29 0a 20 20 20 20 7b 0a 20 20 20 20 20  TcT).    {.     
58c0: 20 54 20 61 3b 0a 20 20 20 20 20 20 63 68 61 72   T a;.      char
58d0: 20 62 3b 0a 20 20 20 20 20 20 54 20 63 3b 0a 20   b;.      T c;. 
58e0: 20 20 20 20 20 54 20 72 3b 0a 20 20 20 20 20 20       T r;.      
58f0: 76 61 5f 73 74 61 72 74 5f 73 74 72 75 63 74 28  va_start_struct(
5900: 61 6c 69 73 74 2c 20 54 2c 20 31 29 3b 0a 20 20  alist, T, 1);.  
5910: 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67 5f 73      a = va_arg_s
5920: 74 72 75 63 74 28 61 6c 69 73 74 2c 20 54 29 3b  truct(alist, T);
5930: 0a 20 20 20 20 20 20 62 20 3d 20 76 61 5f 61 72  .      b = va_ar
5940: 67 5f 63 68 61 72 28 61 6c 69 73 74 29 3b 0a 20  g_char(alist);. 
5950: 20 20 20 20 20 63 20 3d 20 76 61 5f 61 72 67 5f       c = va_arg_
5960: 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 54 29  struct(alist, T)
5970: 3b 0a 20 20 20 20 20 20 72 2e 63 5b 30 5d 3d 27  ;.      r.c[0]='
5980: 62 27 3b 20 72 2e 63 5b 31 5d 3d 63 2e 63 5b 31  b'; r.c[1]=c.c[1
5990: 5d 3b 20 72 2e 63 5b 32 5d 3d 63 2e 63 5b 32 5d  ]; r.c[2]=c.c[2]
59a0: 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66 28  ;.      fprintf(
59b0: 6f 75 74 2c 22 54 20 66 28 54 2c 63 68 61 72 2c  out,"T f(T,char,
59c0: 54 29 3a 28 7b 5c 22 25 63 25 63 25 63 5c 22 7d  T):({\"%c%c%c\"}
59d0: 2c 27 25 63 27 2c 7b 5c 22 25 63 25 63 25 63 5c  ,'%c',{\"%c%c%c\
59e0: 22 7d 29 22 2c 61 2e 63 5b 30 5d 2c 61 2e 63 5b  "})",a.c[0],a.c[
59f0: 31 5d 2c 61 2e 63 5b 32 5d 2c 62 2c 63 2e 63 5b  1],a.c[2],b,c.c[
5a00: 30 5d 2c 63 2e 63 5b 31 5d 2c 63 2e 63 5b 32 5d  0],c.c[1],c.c[2]
5a10: 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28  );.      fflush(
5a20: 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72  out);.      va_r
5a30: 65 74 75 72 6e 5f 73 74 72 75 63 74 28 61 6c 69  eturn_struct(ali
5a40: 73 74 2c 20 54 2c 20 72 29 3b 0a 20 20 20 20 7d  st, T, r);.    }
5a50: 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72  .  else if (curr
5a60: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20  ent_function == 
5a70: 28 76 6f 69 64 2a 29 26 58 5f 42 63 64 42 29 0a  (void*)&X_BcdB).
5a80: 20 20 20 20 7b 0a 20 20 20 20 20 20 42 20 61 3b      {.      B a;
5a90: 0a 20 20 20 20 20 20 63 68 61 72 20 62 3b 0a 20  .      char b;. 
5aa0: 20 20 20 20 20 64 6f 75 62 6c 65 20 63 3b 0a 20       double c;. 
5ab0: 20 20 20 20 20 42 20 64 3b 0a 20 20 20 20 20 20       B d;.      
5ac0: 73 74 61 74 69 63 20 58 20 78 72 3d 7b 22 72 65  static X xr={"re
5ad0: 74 75 72 6e 20 76 61 6c 22 2c 27 52 27 7d 3b 0a  turn val",'R'};.
5ae0: 20 20 20 20 20 20 58 20 72 3b 0a 20 20 20 20 20        X r;.     
5af0: 20 76 61 5f 73 74 61 72 74 5f 73 74 72 75 63 74   va_start_struct
5b00: 28 61 6c 69 73 74 2c 20 58 2c 20 30 29 3b 0a 20  (alist, X, 0);. 
5b10: 20 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67 5f       a = va_arg_
5b20: 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 42 29  struct(alist, B)
5b30: 3b 0a 20 20 20 20 20 20 62 20 3d 20 76 61 5f 61  ;.      b = va_a
5b40: 72 67 5f 63 68 61 72 28 61 6c 69 73 74 29 3b 0a  rg_char(alist);.
5b50: 20 20 20 20 20 20 63 20 3d 20 76 61 5f 61 72 67        c = va_arg
5b60: 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a  _double(alist);.
5b70: 20 20 20 20 20 20 64 20 3d 20 76 61 5f 61 72 67        d = va_arg
5b80: 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 42  _struct(alist, B
5b90: 29 3b 0a 20 20 20 20 20 20 72 20 3d 20 78 72 3b  );.      r = xr;
5ba0: 0a 20 20 20 20 20 20 72 2e 63 31 20 3d 20 62 3b  .      r.c1 = b;
5bb0: 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f  .      fprintf(o
5bc0: 75 74 2c 22 58 20 66 28 42 2c 63 68 61 72 2c 64  ut,"X f(B,char,d
5bd0: 6f 75 62 6c 65 2c 42 29 3a 28 7b 25 67 2c 7b 25  ouble,B):({%g,{%
5be0: 64 2c 25 64 2c 25 64 7d 7d 2c 27 25 63 27 2c 25  d,%d,%d}},'%c',%
5bf0: 67 2c 7b 25 67 2c 7b 25 64 2c 25 64 2c 25 64 7d  g,{%g,{%d,%d,%d}
5c00: 7d 29 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20  })",.           
5c10: 20 20 20 61 2e 64 2c 61 2e 69 5b 30 5d 2c 61 2e     a.d,a.i[0],a.
5c20: 69 5b 31 5d 2c 61 2e 69 5b 32 5d 2c 62 2c 63 2c  i[1],a.i[2],b,c,
5c30: 64 2e 64 2c 64 2e 69 5b 30 5d 2c 64 2e 69 5b 31  d.d,d.i[0],d.i[1
5c40: 5d 2c 64 2e 69 5b 32 5d 29 3b 0a 20 20 20 20 20  ],d.i[2]);.     
5c50: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
5c60: 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 73 74      va_return_st
5c70: 72 75 63 74 28 61 6c 69 73 74 2c 20 58 2c 20 72  ruct(alist, X, r
5c80: 29 3b 0a 20 20 20 20 7d 0a 23 65 6e 64 69 66 0a  );.    }.#endif.
5c90: 23 65 6e 64 69 66 0a 0a 20 20 65 6c 73 65 0a 20  #endif..  else. 
5ca0: 20 20 20 7b 0a 20 20 20 20 20 20 66 70 72 69 6e     {.      fprin
5cb0: 74 66 28 6f 75 74 2c 22 73 69 6d 75 6c 61 74 65  tf(out,"simulate
5cc0: 3a 20 75 6e 6b 6e 6f 77 6e 20 66 75 6e 63 74 69  : unknown functi
5cd0: 6f 6e 5c 6e 22 29 3b 0a 20 20 20 20 20 20 66 66  on\n");.      ff
5ce0: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 7d  lush(out);.    }
5cf0: 0a 7d 0a 0a 2f 2a 0a 20 2a 20 54 68 65 20 77 61  .}../*. * The wa
5d00: 79 20 77 65 20 72 75 6e 20 74 68 65 73 65 20 74  y we run these t
5d10: 65 73 74 73 20 2d 20 66 69 72 73 74 20 63 61 6c  ests - first cal
5d20: 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64  l the function d
5d30: 69 72 65 63 74 6c 79 2c 20 74 68 65 6e 0a 20 2a  irectly, then. *
5d40: 20 74 68 72 6f 75 67 68 20 76 61 63 61 6c 6c 28   through vacall(
5d50: 29 20 2d 20 74 68 65 72 65 20 69 73 20 74 68 65  ) - there is the
5d60: 20 64 61 6e 67 65 72 20 74 68 61 74 20 61 72 67   danger that arg
5d70: 75 6d 65 6e 74 73 20 6f 72 20 72 65 73 75 6c 74  uments or result
5d80: 73 20 73 65 65 6d 0a 20 2a 20 74 6f 20 62 65 20  s seem. * to be 
5d90: 70 61 73 73 65 64 20 63 6f 72 72 65 63 74 6c 79  passed correctly
5da0: 2c 20 62 75 74 20 77 68 61 74 20 77 65 20 61 72  , but what we ar
5db0: 65 20 73 65 65 69 6e 67 20 61 72 65 20 69 6e 20  e seeing are in 
5dc0: 66 61 63 74 20 74 68 65 20 76 65 73 74 69 67 65  fact the vestige
5dd0: 73 0a 20 2a 20 28 74 72 61 63 65 73 29 20 6f 72  s. * (traces) or
5de0: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 63 61   the previous ca
5df0: 6c 6c 2e 20 54 68 69 73 20 6d 61 79 20 73 65 72  ll. This may ser
5e00: 69 6f 75 73 6c 79 20 66 61 6b 65 20 74 68 65 20  iously fake the 
5e10: 74 65 73 74 2e 0a 20 2a 20 41 76 6f 69 64 20 74  test.. * Avoid t
5e20: 68 69 73 20 62 79 20 63 6c 65 61 72 69 6e 67 20  his by clearing 
5e30: 74 68 65 20 72 65 67 69 73 74 65 72 73 20 62 65  the registers be
5e40: 74 77 65 65 6e 20 74 68 65 20 66 69 72 73 74 20  tween the first 
5e50: 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20 63  and the second c
5e60: 61 6c 6c 2e 0a 20 2a 2f 0a 6c 6f 6e 67 20 63 6c  all.. */.long cl
5e70: 65 61 72 5f 74 72 61 63 65 73 5f 69 20 28 6c 6f  ear_traces_i (lo
5e80: 6e 67 20 61 2c 20 6c 6f 6e 67 20 62 2c 20 6c 6f  ng a, long b, lo
5e90: 6e 67 20 63 2c 20 6c 6f 6e 67 20 64 2c 20 6c 6f  ng c, long d, lo
5ea0: 6e 67 20 65 2c 20 6c 6f 6e 67 20 66 2c 20 6c 6f  ng e, long f, lo
5eb0: 6e 67 20 67 2c 20 6c 6f 6e 67 20 68 2c 0a 20 20  ng g, long h,.  
5ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5ed0: 20 20 20 6c 6f 6e 67 20 69 2c 20 6c 6f 6e 67 20     long i, long 
5ee0: 6a 2c 20 6c 6f 6e 67 20 6b 2c 20 6c 6f 6e 67 20  j, long k, long 
5ef0: 6c 2c 20 6c 6f 6e 67 20 6d 2c 20 6c 6f 6e 67 20  l, long m, long 
5f00: 6e 2c 20 6c 6f 6e 67 20 6f 2c 20 6c 6f 6e 67 20  n, long o, long 
5f10: 70 29 0a 7b 20 72 65 74 75 72 6e 20 30 3b 20 7d  p).{ return 0; }
5f20: 0a 66 6c 6f 61 74 20 63 6c 65 61 72 5f 74 72 61  .float clear_tra
5f30: 63 65 73 5f 66 20 28 66 6c 6f 61 74 20 61 2c 20  ces_f (float a, 
5f40: 66 6c 6f 61 74 20 62 2c 20 66 6c 6f 61 74 20 63  float b, float c
5f50: 2c 20 66 6c 6f 61 74 20 64 2c 20 66 6c 6f 61 74  , float d, float
5f60: 20 65 2c 20 66 6c 6f 61 74 20 66 2c 20 66 6c 6f   e, float f, flo
5f70: 61 74 20 67 2c 0a 20 20 20 20 20 20 20 20 20 20  at g,.          
5f80: 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61              floa
5f90: 74 20 68 2c 20 66 6c 6f 61 74 20 69 2c 20 66 6c  t h, float i, fl
5fa0: 6f 61 74 20 6a 2c 20 66 6c 6f 61 74 20 6b 2c 20  oat j, float k, 
5fb0: 66 6c 6f 61 74 20 6c 2c 20 66 6c 6f 61 74 20 6d  float l, float m
5fc0: 2c 20 66 6c 6f 61 74 20 6e 2c 0a 20 20 20 20 20  , float n,.     
5fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5fe0: 20 66 6c 6f 61 74 20 6f 2c 20 66 6c 6f 61 74 20   float o, float 
5ff0: 70 29 0a 7b 20 72 65 74 75 72 6e 20 30 2e 30 3b  p).{ return 0.0;
6000: 20 7d 0a 64 6f 75 62 6c 65 20 63 6c 65 61 72 5f   }.double clear_
6010: 74 72 61 63 65 73 5f 64 20 28 64 6f 75 62 6c 65  traces_d (double
6020: 20 61 2c 20 64 6f 75 62 6c 65 20 62 2c 20 64 6f   a, double b, do
6030: 75 62 6c 65 20 63 2c 20 64 6f 75 62 6c 65 20 64  uble c, double d
6040: 2c 20 64 6f 75 62 6c 65 20 65 2c 20 64 6f 75 62  , double e, doub
6050: 6c 65 20 66 2c 20 64 6f 75 62 6c 65 20 67 2c 0a  le f, double g,.
6060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
6070: 20 20 20 20 20 20 20 64 6f 75 62 6c 65 20 68 2c         double h,
6080: 20 64 6f 75 62 6c 65 20 69 2c 20 64 6f 75 62 6c   double i, doubl
6090: 65 20 6a 2c 20 64 6f 75 62 6c 65 20 6b 2c 20 64  e j, double k, d
60a0: 6f 75 62 6c 65 20 6c 2c 20 64 6f 75 62 6c 65 20  ouble l, double 
60b0: 6d 2c 20 64 6f 75 62 6c 65 20 6e 2c 0a 20 20 20  m, double n,.   
60c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
60d0: 20 20 20 20 64 6f 75 62 6c 65 20 6f 2c 20 64 6f      double o, do
60e0: 75 62 6c 65 20 70 29 0a 7b 20 72 65 74 75 72 6e  uble p).{ return
60f0: 20 30 2e 30 3b 20 7d 0a 4a 20 63 6c 65 61 72 5f   0.0; }.J clear_
6100: 74 72 61 63 65 73 5f 4a 20 28 76 6f 69 64 29 0a  traces_J (void).
6110: 7b 20 4a 20 6a 3b 20 6a 2e 6c 31 20 3d 20 6a 2e  { J j; j.l1 = j.
6120: 6c 32 20 3d 20 30 3b 20 72 65 74 75 72 6e 20 6a  l2 = 0; return j
6130: 3b 20 7d 0a 76 6f 69 64 20 63 6c 65 61 72 5f 74  ; }.void clear_t
6140: 72 61 63 65 73 20 28 76 6f 69 64 29 0a 7b 20 63  races (void).{ c
6150: 6c 65 61 72 5f 74 72 61 63 65 73 5f 69 28 30 2c  lear_traces_i(0,
6160: 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c  0,0,0,0,0,0,0,0,
6170: 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 29 3b 0a  0,0,0,0,0,0,0);.
6180: 20 20 63 6c 65 61 72 5f 74 72 61 63 65 73 5f 66    clear_traces_f
6190: 28 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30  (0.0,0.0,0.0,0.0
61a0: 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30  ,0.0,0.0,0.0,0.0
61b0: 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30  ,0.0,0.0,0.0,0.0
61c0: 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30  ,0.0,0.0,0.0,0.0
61d0: 29 3b 0a 20 20 63 6c 65 61 72 5f 74 72 61 63 65  );.  clear_trace
61e0: 73 5f 64 28 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c  s_d(0.0,0.0,0.0,
61f0: 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c  0.0,0.0,0.0,0.0,
6200: 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c  0.0,0.0,0.0,0.0,
6210: 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c  0.0,0.0,0.0,0.0,
6220: 30 2e 30 29 3b 0a 20 20 63 6c 65 61 72 5f 74 72  0.0);.  clear_tr
6230: 61 63 65 73 5f 4a 28 29 3b 0a 7d 0a 0a 69 6e 74  aces_J();.}..int
6240: 20 6d 61 69 6e 20 28 76 6f 69 64 29 0a 7b 0a 20   main (void).{. 
6250: 20 6f 75 74 20 3d 20 73 74 64 6f 75 74 3b 0a 0a   out = stdout;..
6260: 20 20 76 61 63 61 6c 6c 5f 66 75 6e 63 74 69 6f    vacall_functio
6270: 6e 20 3d 20 26 73 69 6d 75 6c 61 74 6f 72 3b 0a  n = &simulator;.
6280: 0a 20 20 2f 2a 20 76 6f 69 64 20 74 65 73 74 73  .  /* void tests
6290: 20 2a 2f 0a 20 20 76 5f 76 28 29 3b 0a 20 20 63   */.  v_v();.  c
62a0: 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20  lear_traces();. 
62b0: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
62c0: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 76 5f 76  n = (void*) &v_v
62d0: 3b 20 28 28 76 6f 69 64 20 28 2a 29 20 28 76 6f  ; ((void (*) (vo
62e0: 69 64 29 29 20 76 61 63 61 6c 6c 29 20 28 29 3b  id)) vacall) ();
62f0: 0a 0a 20 20 2f 2a 20 69 6e 74 20 74 65 73 74 73  ..  /* int tests
6300: 20 2a 2f 0a 20 20 7b 20 69 6e 74 20 69 72 3b 0a   */.  { int ir;.
6310: 0a 20 20 20 20 69 72 20 3d 20 69 5f 76 28 29 3b  .    ir = i_v();
6320: 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .    fprintf(out
6330: 2c 22 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a 20  ,"->%d\n",ir);. 
6340: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
6350: 20 20 20 20 69 72 20 3d 20 30 3b 20 63 6c 65 61      ir = 0; clea
6360: 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20  r_traces();.    
6370: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
6380: 20 3d 20 28 76 6f 69 64 2a 29 20 26 69 5f 76 3b   = (void*) &i_v;
6390: 20 69 72 20 3d 20 28 28 69 6e 74 20 28 2a 29 20   ir = ((int (*) 
63a0: 28 76 6f 69 64 29 29 20 76 61 63 61 6c 6c 29 20  (void)) vacall) 
63b0: 28 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28  ();.    fprintf(
63c0: 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22 2c 69 72 29  out,"->%d\n",ir)
63d0: 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74  ;.    fflush(out
63e0: 29 3b 0a 0a 20 20 20 20 69 72 20 3d 20 69 5f 69  );..    ir = i_i
63f0: 28 69 31 29 3b 0a 20 20 20 20 66 70 72 69 6e 74  (i1);.    fprint
6400: 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22 2c 69  f(out,"->%d\n",i
6410: 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f  r);.    fflush(o
6420: 75 74 29 3b 0a 20 20 20 20 69 72 20 3d 20 30 3b  ut);.    ir = 0;
6430: 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b   clear_traces();
6440: 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e  .    current_fun
6450: 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20  ction = (void*) 
6460: 26 69 5f 69 3b 20 69 72 20 3d 20 28 28 69 6e 74  &i_i; ir = ((int
6470: 20 28 2a 29 20 28 69 6e 74 29 29 20 76 61 63 61   (*) (int)) vaca
6480: 6c 6c 29 20 28 69 31 29 3b 0a 20 20 20 20 66 70  ll) (i1);.    fp
6490: 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c  rintf(out,"->%d\
64a0: 6e 22 2c 69 72 29 3b 0a 20 20 20 20 66 66 6c 75  n",ir);.    fflu
64b0: 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20 69 72  sh(out);..    ir
64c0: 20 3d 20 69 5f 69 32 28 69 31 2c 69 32 29 3b 0a   = i_i2(i1,i2);.
64d0: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
64e0: 22 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a 20 20  "->%d\n",ir);.  
64f0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
6500: 20 20 20 69 72 20 3d 20 30 3b 20 63 6c 65 61 72     ir = 0; clear
6510: 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20 63  _traces();.    c
6520: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
6530: 3d 20 28 76 6f 69 64 2a 29 20 26 69 5f 69 32 3b  = (void*) &i_i2;
6540: 20 69 72 20 3d 20 28 28 69 6e 74 20 28 2a 29 20   ir = ((int (*) 
6550: 28 69 6e 74 2c 69 6e 74 29 29 20 76 61 63 61 6c  (int,int)) vacal
6560: 6c 29 20 28 69 31 2c 69 32 29 3b 0a 20 20 20 20  l) (i1,i2);.    
6570: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25  fprintf(out,"->%
6580: 64 5c 6e 22 2c 69 72 29 3b 0a 20 20 20 20 66 66  d\n",ir);.    ff
6590: 6c 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20  lush(out);..    
65a0: 69 72 20 3d 20 69 5f 69 34 28 69 31 2c 69 32 2c  ir = i_i4(i1,i2,
65b0: 69 33 2c 69 34 29 3b 0a 20 20 20 20 66 70 72 69  i3,i4);.    fpri
65c0: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22  ntf(out,"->%d\n"
65d0: 2c 69 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  ,ir);.    fflush
65e0: 28 6f 75 74 29 3b 0a 20 20 20 20 69 72 20 3d 20  (out);.    ir = 
65f0: 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28  0; clear_traces(
6600: 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66  );.    current_f
6610: 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a  unction = (void*
6620: 29 20 26 69 5f 69 34 3b 20 69 72 20 3d 20 28 28  ) &i_i4; ir = ((
6630: 69 6e 74 20 28 2a 29 20 28 69 6e 74 2c 69 6e 74  int (*) (int,int
6640: 2c 69 6e 74 2c 69 6e 74 29 29 20 76 61 63 61 6c  ,int,int)) vacal
6650: 6c 29 20 28 69 31 2c 69 32 2c 69 33 2c 69 34 29  l) (i1,i2,i3,i4)
6660: 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75  ;.    fprintf(ou
6670: 74 2c 22 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a  t,"->%d\n",ir);.
6680: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
6690: 0a 0a 20 20 20 20 69 72 20 3d 20 69 5f 69 38 28  ..    ir = i_i8(
66a0: 69 31 2c 69 32 2c 69 33 2c 69 34 2c 69 35 2c 69  i1,i2,i3,i4,i5,i
66b0: 36 2c 69 37 2c 69 38 29 3b 0a 20 20 20 20 66 70  6,i7,i8);.    fp
66c0: 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c  rintf(out,"->%d\
66d0: 6e 22 2c 69 72 29 3b 0a 20 20 20 20 66 66 6c 75  n",ir);.    fflu
66e0: 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 69 72 20  sh(out);.    ir 
66f0: 3d 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65  = 0; clear_trace
6700: 73 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74  s();.    current
6710: 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69  _function = (voi
6720: 64 2a 29 20 26 69 5f 69 38 3b 20 69 72 20 3d 20  d*) &i_i8; ir = 
6730: 28 28 69 6e 74 20 28 2a 29 20 28 69 6e 74 2c 69  ((int (*) (int,i
6740: 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69  nt,int,int,int,i
6750: 6e 74 2c 69 6e 74 2c 69 6e 74 29 29 20 76 61 63  nt,int,int)) vac
6760: 61 6c 6c 29 20 28 69 31 2c 69 32 2c 69 33 2c 69  all) (i1,i2,i3,i
6770: 34 2c 69 35 2c 69 36 2c 69 37 2c 69 38 29 3b 0a  4,i5,i6,i7,i8);.
6780: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
6790: 22 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a 20 20  "->%d\n",ir);.  
67a0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 0a    fflush(out);..
67b0: 20 20 20 20 69 72 20 3d 20 69 5f 69 31 36 28 69      ir = i_i16(i
67c0: 31 2c 69 32 2c 69 33 2c 69 34 2c 69 35 2c 69 36  1,i2,i3,i4,i5,i6
67d0: 2c 69 37 2c 69 38 2c 69 39 2c 69 31 30 2c 69 31  ,i7,i8,i9,i10,i1
67e0: 31 2c 69 31 32 2c 69 31 33 2c 69 31 34 2c 69 31  1,i12,i13,i14,i1
67f0: 35 2c 69 31 36 29 3b 0a 20 20 20 20 66 70 72 69  5,i16);.    fpri
6800: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22  ntf(out,"->%d\n"
6810: 2c 69 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  ,ir);.    fflush
6820: 28 6f 75 74 29 3b 0a 20 20 20 20 69 72 20 3d 20  (out);.    ir = 
6830: 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28  0; clear_traces(
6840: 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66  );.    current_f
6850: 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a  unction = (void*
6860: 29 20 26 69 5f 69 31 36 3b 20 69 72 20 3d 20 28  ) &i_i16; ir = (
6870: 28 69 6e 74 20 28 2a 29 20 28 69 6e 74 2c 69 6e  (int (*) (int,in
6880: 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  t,int,int,int,in
6890: 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  t,int,int,int,in
68a0: 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  t,int,int,int,in
68b0: 74 2c 69 6e 74 2c 69 6e 74 29 29 20 76 61 63 61  t,int,int)) vaca
68c0: 6c 6c 29 20 28 69 31 2c 69 32 2c 69 33 2c 69 34  ll) (i1,i2,i3,i4
68d0: 2c 69 35 2c 69 36 2c 69 37 2c 69 38 2c 69 39 2c  ,i5,i6,i7,i8,i9,
68e0: 69 31 30 2c 69 31 31 2c 69 31 32 2c 69 31 33 2c  i10,i11,i12,i13,
68f0: 69 31 34 2c 69 31 35 2c 69 31 36 29 3b 0a 20 20  i14,i15,i16);.  
6900: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d    fprintf(out,"-
6910: 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a 20 20 20 20  >%d\n",ir);.    
6920: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 7d  fflush(out);.  }
6930: 0a 0a 20 20 2f 2a 20 66 6c 6f 61 74 20 74 65 73  ..  /* float tes
6940: 74 73 20 2a 2f 0a 20 20 7b 20 66 6c 6f 61 74 20  ts */.  { float 
6950: 66 72 3b 0a 0a 20 20 20 20 66 72 20 3d 20 66 5f  fr;..    fr = f_
6960: 66 28 66 31 29 3b 0a 20 20 20 20 66 70 72 69 6e  f(f1);.    fprin
6970: 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c  tf(out,"->%g\n",
6980: 66 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  fr);.    fflush(
6990: 6f 75 74 29 3b 0a 20 20 20 20 66 72 20 3d 20 30  out);.    fr = 0
69a0: 2e 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73  .0; clear_traces
69b0: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
69c0: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
69d0: 2a 29 20 26 66 5f 66 3b 20 66 72 20 3d 20 28 28  *) &f_f; fr = ((
69e0: 66 6c 6f 61 74 20 28 2a 29 20 28 66 6c 6f 61 74  float (*) (float
69f0: 29 29 20 76 61 63 61 6c 6c 29 20 28 66 31 29 3b  )) vacall) (f1);
6a00: 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .    fprintf(out
6a10: 2c 22 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20  ,"->%g\n",fr);. 
6a20: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
6a30: 0a 20 20 20 20 66 72 20 3d 20 66 5f 66 32 28 66  .    fr = f_f2(f
6a40: 31 2c 66 32 29 3b 0a 20 20 20 20 66 70 72 69 6e  1,f2);.    fprin
6a50: 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c  tf(out,"->%g\n",
6a60: 66 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  fr);.    fflush(
6a70: 6f 75 74 29 3b 0a 20 20 20 20 66 72 20 3d 20 30  out);.    fr = 0
6a80: 2e 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73  .0; clear_traces
6a90: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
6aa0: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
6ab0: 2a 29 20 26 66 5f 66 32 3b 20 66 72 20 3d 20 28  *) &f_f2; fr = (
6ac0: 28 66 6c 6f 61 74 20 28 2a 29 20 28 66 6c 6f 61  (float (*) (floa
6ad0: 74 2c 66 6c 6f 61 74 29 29 20 76 61 63 61 6c 6c  t,float)) vacall
6ae0: 29 20 28 66 31 2c 66 32 29 3b 0a 20 20 20 20 66  ) (f1,f2);.    f
6af0: 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67  printf(out,"->%g
6b00: 5c 6e 22 2c 66 72 29 3b 0a 20 20 20 20 66 66 6c  \n",fr);.    ffl
6b10: 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20 66  ush(out);..    f
6b20: 72 20 3d 20 66 5f 66 34 28 66 31 2c 66 32 2c 66  r = f_f4(f1,f2,f
6b30: 33 2c 66 34 29 3b 0a 20 20 20 20 66 70 72 69 6e  3,f4);.    fprin
6b40: 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c  tf(out,"->%g\n",
6b50: 66 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  fr);.    fflush(
6b60: 6f 75 74 29 3b 0a 20 20 20 20 66 72 20 3d 20 30  out);.    fr = 0
6b70: 2e 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73  .0; clear_traces
6b80: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
6b90: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
6ba0: 2a 29 20 26 66 5f 66 34 3b 20 66 72 20 3d 20 28  *) &f_f4; fr = (
6bb0: 28 66 6c 6f 61 74 20 28 2a 29 20 28 66 6c 6f 61  (float (*) (floa
6bc0: 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c  t,float,float,fl
6bd0: 6f 61 74 29 29 20 76 61 63 61 6c 6c 29 20 28 66  oat)) vacall) (f
6be0: 31 2c 66 32 2c 66 33 2c 66 34 29 3b 0a 20 20 20  1,f2,f3,f4);.   
6bf0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
6c00: 25 67 5c 6e 22 2c 66 72 29 3b 0a 20 20 20 20 66  %g\n",fr);.    f
6c10: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20  flush(out);..   
6c20: 20 66 72 20 3d 20 66 5f 66 38 28 66 31 2c 66 32   fr = f_f8(f1,f2
6c30: 2c 66 33 2c 66 34 2c 66 35 2c 66 36 2c 66 37 2c  ,f3,f4,f5,f6,f7,
6c40: 66 38 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66  f8);.    fprintf
6c50: 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 66 72  (out,"->%g\n",fr
6c60: 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75  );.    fflush(ou
6c70: 74 29 3b 0a 20 20 20 20 66 72 20 3d 20 30 2e 30  t);.    fr = 0.0
6c80: 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29  ; clear_traces()
6c90: 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75  ;.    current_fu
6ca0: 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29  nction = (void*)
6cb0: 20 26 66 5f 66 38 3b 20 66 72 20 3d 20 28 28 66   &f_f8; fr = ((f
6cc0: 6c 6f 61 74 20 28 2a 29 20 28 66 6c 6f 61 74 2c  loat (*) (float,
6cd0: 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61  float,float,floa
6ce0: 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c  t,float,float,fl
6cf0: 6f 61 74 2c 66 6c 6f 61 74 29 29 20 76 61 63 61  oat,float)) vaca
6d00: 6c 6c 29 20 28 66 31 2c 66 32 2c 66 33 2c 66 34  ll) (f1,f2,f3,f4
6d10: 2c 66 35 2c 66 36 2c 66 37 2c 66 38 29 3b 0a 20  ,f5,f6,f7,f8);. 
6d20: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
6d30: 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20 20 20  ->%g\n",fr);.   
6d40: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 0a 20   fflush(out);.. 
6d50: 20 20 20 66 72 20 3d 20 66 5f 66 31 36 28 66 31     fr = f_f16(f1
6d60: 2c 66 32 2c 66 33 2c 66 34 2c 66 35 2c 66 36 2c  ,f2,f3,f4,f5,f6,
6d70: 66 37 2c 66 38 2c 66 39 2c 66 31 30 2c 66 31 31  f7,f8,f9,f10,f11
6d80: 2c 66 31 32 2c 66 31 33 2c 66 31 34 2c 66 31 35  ,f12,f13,f14,f15
6d90: 2c 66 31 36 29 3b 0a 20 20 20 20 66 70 72 69 6e  ,f16);.    fprin
6da0: 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c  tf(out,"->%g\n",
6db0: 66 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  fr);.    fflush(
6dc0: 6f 75 74 29 3b 0a 20 20 20 20 66 72 20 3d 20 30  out);.    fr = 0
6dd0: 2e 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73  .0; clear_traces
6de0: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
6df0: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
6e00: 2a 29 20 26 66 5f 66 31 36 3b 20 66 72 20 3d 20  *) &f_f16; fr = 
6e10: 28 28 66 6c 6f 61 74 20 28 2a 29 20 28 66 6c 6f  ((float (*) (flo
6e20: 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66  at,float,float,f
6e30: 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74  loat,float,float
6e40: 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f  ,float,float,flo
6e50: 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66  at,float,float,f
6e60: 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74  loat,float,float
6e70: 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 29 29 20 76  ,float,float)) v
6e80: 61 63 61 6c 6c 29 20 28 66 31 2c 66 32 2c 66 33  acall) (f1,f2,f3
6e90: 2c 66 34 2c 66 35 2c 66 36 2c 66 37 2c 66 38 2c  ,f4,f5,f6,f7,f8,
6ea0: 66 39 2c 66 31 30 2c 66 31 31 2c 66 31 32 2c 66  f9,f10,f11,f12,f
6eb0: 31 33 2c 66 31 34 2c 66 31 35 2c 66 31 36 29 3b  13,f14,f15,f16);
6ec0: 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .    fprintf(out
6ed0: 2c 22 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20  ,"->%g\n",fr);. 
6ee0: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
6ef0: 20 20 7d 0a 0a 20 20 2f 2a 20 64 6f 75 62 6c 65    }..  /* double
6f00: 20 74 65 73 74 73 20 2a 2f 0a 20 20 7b 20 64 6f   tests */.  { do
6f10: 75 62 6c 65 20 64 72 3b 0a 0a 20 20 20 20 64 72  uble dr;..    dr
6f20: 20 3d 20 64 5f 64 28 64 31 29 3b 0a 20 20 20 20   = d_d(d1);.    
6f30: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25  fprintf(out,"->%
6f40: 67 5c 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66  g\n",dr);.    ff
6f50: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 64  lush(out);.    d
6f60: 72 20 3d 20 30 2e 30 3b 20 63 6c 65 61 72 5f 74  r = 0.0; clear_t
6f70: 72 61 63 65 73 28 29 3b 0a 20 20 20 20 63 75 72  races();.    cur
6f80: 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20  rent_function = 
6f90: 28 76 6f 69 64 2a 29 20 26 64 5f 64 3b 20 64 72  (void*) &d_d; dr
6fa0: 20 3d 20 28 28 64 6f 75 62 6c 65 20 28 2a 29 20   = ((double (*) 
6fb0: 28 64 6f 75 62 6c 65 29 29 20 76 61 63 61 6c 6c  (double)) vacall
6fc0: 29 20 28 64 31 29 3b 0a 20 20 20 20 66 70 72 69  ) (d1);.    fpri
6fd0: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22  ntf(out,"->%g\n"
6fe0: 2c 64 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  ,dr);.    fflush
6ff0: 28 6f 75 74 29 3b 0a 0a 20 20 20 20 64 72 20 3d  (out);..    dr =
7000: 20 64 5f 64 32 28 64 31 2c 64 32 29 3b 0a 20 20   d_d2(d1,d2);.  
7010: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d    fprintf(out,"-
7020: 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a 20 20 20 20  >%g\n",dr);.    
7030: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20  fflush(out);.   
7040: 20 64 72 20 3d 20 30 2e 30 3b 20 63 6c 65 61 72   dr = 0.0; clear
7050: 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20 63  _traces();.    c
7060: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
7070: 3d 20 28 76 6f 69 64 2a 29 20 26 64 5f 64 32 3b  = (void*) &d_d2;
7080: 20 64 72 20 3d 20 28 28 64 6f 75 62 6c 65 20 28   dr = ((double (
7090: 2a 29 20 28 64 6f 75 62 6c 65 2c 64 6f 75 62 6c  *) (double,doubl
70a0: 65 29 29 20 76 61 63 61 6c 6c 29 20 28 64 31 2c  e)) vacall) (d1,
70b0: 64 32 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66  d2);.    fprintf
70c0: 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 64 72  (out,"->%g\n",dr
70d0: 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75  );.    fflush(ou
70e0: 74 29 3b 0a 0a 20 20 20 20 64 72 20 3d 20 64 5f  t);..    dr = d_
70f0: 64 34 28 64 31 2c 64 32 2c 64 33 2c 64 34 29 3b  d4(d1,d2,d3,d4);
7100: 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .    fprintf(out
7110: 2c 22 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a 20  ,"->%g\n",dr);. 
7120: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
7130: 20 20 20 20 64 72 20 3d 20 30 2e 30 3b 20 63 6c      dr = 0.0; cl
7140: 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20  ear_traces();.  
7150: 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69    current_functi
7160: 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 64 5f  on = (void*) &d_
7170: 64 34 3b 20 64 72 20 3d 20 28 28 64 6f 75 62 6c  d4; dr = ((doubl
7180: 65 20 28 2a 29 20 28 64 6f 75 62 6c 65 2c 64 6f  e (*) (double,do
7190: 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62  uble,double,doub
71a0: 6c 65 29 29 20 76 61 63 61 6c 6c 29 20 28 64 31  le)) vacall) (d1
71b0: 2c 64 32 2c 64 33 2c 64 34 29 3b 0a 20 20 20 20  ,d2,d3,d4);.    
71c0: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25  fprintf(out,"->%
71d0: 67 5c 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66  g\n",dr);.    ff
71e0: 6c 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20  lush(out);..    
71f0: 64 72 20 3d 20 64 5f 64 38 28 64 31 2c 64 32 2c  dr = d_d8(d1,d2,
7200: 64 33 2c 64 34 2c 64 35 2c 64 36 2c 64 37 2c 64  d3,d4,d5,d6,d7,d
7210: 38 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28  8);.    fprintf(
7220: 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 64 72 29  out,"->%g\n",dr)
7230: 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74  ;.    fflush(out
7240: 29 3b 0a 20 20 20 20 64 72 20 3d 20 30 2e 30 3b  );.    dr = 0.0;
7250: 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b   clear_traces();
7260: 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e  .    current_fun
7270: 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20  ction = (void*) 
7280: 26 64 5f 64 38 3b 20 64 72 20 3d 20 28 28 64 6f  &d_d8; dr = ((do
7290: 75 62 6c 65 20 28 2a 29 20 28 64 6f 75 62 6c 65  uble (*) (double
72a0: 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64  ,double,double,d
72b0: 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75  ouble,double,dou
72c0: 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c  ble,double,doubl
72d0: 65 29 29 20 76 61 63 61 6c 6c 29 20 28 64 31 2c  e)) vacall) (d1,
72e0: 64 32 2c 64 33 2c 64 34 2c 64 35 2c 64 36 2c 64  d2,d3,d4,d5,d6,d
72f0: 37 2c 64 38 29 3b 0a 20 20 20 20 66 70 72 69 6e  7,d8);.    fprin
7300: 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c  tf(out,"->%g\n",
7310: 64 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  dr);.    fflush(
7320: 6f 75 74 29 3b 0a 0a 20 20 20 20 64 72 20 3d 20  out);..    dr = 
7330: 64 5f 64 31 36 28 64 31 2c 64 32 2c 64 33 2c 64  d_d16(d1,d2,d3,d
7340: 34 2c 64 35 2c 64 36 2c 64 37 2c 64 38 2c 64 39  4,d5,d6,d7,d8,d9
7350: 2c 64 31 30 2c 64 31 31 2c 64 31 32 2c 64 31 33  ,d10,d11,d12,d13
7360: 2c 64 31 34 2c 64 31 35 2c 64 31 36 29 3b 0a 20  ,d14,d15,d16);. 
7370: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
7380: 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a 20 20 20  ->%g\n",dr);.   
7390: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
73a0: 20 20 64 72 20 3d 20 30 2e 30 3b 20 63 6c 65 61    dr = 0.0; clea
73b0: 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20  r_traces();.    
73c0: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
73d0: 20 3d 20 28 76 6f 69 64 2a 29 20 26 64 5f 64 31   = (void*) &d_d1
73e0: 36 3b 20 64 72 20 3d 20 28 28 64 6f 75 62 6c 65  6; dr = ((double
73f0: 20 28 2a 29 20 28 64 6f 75 62 6c 65 2c 64 6f 75   (*) (double,dou
7400: 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c  ble,double,doubl
7410: 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c  e,double,double,
7420: 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f  double,double,do
7430: 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62  uble,double,doub
7440: 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65  le,double,double
7450: 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64  ,double,double,d
7460: 6f 75 62 6c 65 29 29 20 76 61 63 61 6c 6c 29 20  ouble)) vacall) 
7470: 28 64 31 2c 64 32 2c 64 33 2c 64 34 2c 64 35 2c  (d1,d2,d3,d4,d5,
7480: 64 36 2c 64 37 2c 64 38 2c 64 39 2c 64 31 30 2c  d6,d7,d8,d9,d10,
7490: 64 31 31 2c 64 31 32 2c 64 31 33 2c 64 31 34 2c  d11,d12,d13,d14,
74a0: 64 31 35 2c 64 31 36 29 3b 0a 20 20 20 20 66 70  d15,d16);.    fp
74b0: 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c  rintf(out,"->%g\
74c0: 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66 6c 75  n",dr);.    fflu
74d0: 73 68 28 6f 75 74 29 3b 0a 20 20 7d 0a 0a 20 20  sh(out);.  }..  
74e0: 2f 2a 20 70 6f 69 6e 74 65 72 20 74 65 73 74 73  /* pointer tests
74f0: 20 2a 2f 0a 20 20 7b 20 76 6f 69 64 2a 20 76 70   */.  { void* vp
7500: 72 3b 0a 0a 20 20 20 20 76 70 72 20 3d 20 76 70  r;..    vpr = vp
7510: 5f 76 70 64 70 63 70 73 70 28 26 75 63 31 2c 26  _vpdpcpsp(&uc1,&
7520: 64 32 2c 73 74 72 33 2c 26 49 34 29 3b 0a 20 20  d2,str3,&I4);.  
7530: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d    fprintf(out,"-
7540: 3e 30 78 25 6c 78 5c 6e 22 2c 28 6c 6f 6e 67 29  >0x%lx\n",(long)
7550: 76 70 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  vpr);.    fflush
7560: 28 6f 75 74 29 3b 0a 20 20 20 20 76 70 72 20 3d  (out);.    vpr =
7570: 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73   0; clear_traces
7580: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
7590: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
75a0: 2a 29 20 26 76 70 5f 76 70 64 70 63 70 73 70 3b  *) &vp_vpdpcpsp;
75b0: 20 76 70 72 20 3d 20 28 28 76 6f 69 64 2a 20 28   vpr = ((void* (
75c0: 2a 29 20 28 76 6f 69 64 2a 2c 64 6f 75 62 6c 65  *) (void*,double
75d0: 2a 2c 63 68 61 72 2a 2c 49 6e 74 2a 29 29 20 76  *,char*,Int*)) v
75e0: 61 63 61 6c 6c 29 20 28 26 75 63 31 2c 26 64 32  acall) (&uc1,&d2
75f0: 2c 73 74 72 33 2c 26 49 34 29 3b 0a 20 20 20 20  ,str3,&I4);.    
7600: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 30  fprintf(out,"->0
7610: 78 25 6c 78 5c 6e 22 2c 28 6c 6f 6e 67 29 76 70  x%lx\n",(long)vp
7620: 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f  r);.    fflush(o
7630: 75 74 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 20 6d  ut);.  }..  /* m
7640: 69 78 65 64 20 6e 75 6d 62 65 72 20 74 65 73 74  ixed number test
7650: 73 20 2a 2f 0a 20 20 7b 20 75 63 68 61 72 20 75  s */.  { uchar u
7660: 63 72 3b 0a 20 20 20 20 75 73 68 6f 72 74 20 75  cr;.    ushort u
7670: 73 72 3b 0a 20 20 20 20 64 6f 75 62 6c 65 20 64  sr;.    double d
7680: 72 3b 0a 23 69 66 64 65 66 20 48 41 56 45 5f 4c  r;.#ifdef HAVE_L
7690: 4f 4e 47 5f 4c 4f 4e 47 5f 49 4e 54 0a 20 20 20  ONG_LONG_INT.   
76a0: 20 6c 6f 6e 67 20 6c 6f 6e 67 20 6c 6c 72 3b 0a   long long llr;.
76b0: 23 65 6e 64 69 66 0a 0a 20 20 20 20 75 63 72 20  #endif..    ucr 
76c0: 3d 20 75 63 5f 75 63 73 69 6c 28 75 63 31 2c 75  = uc_ucsil(uc1,u
76d0: 73 32 2c 75 69 33 2c 75 6c 34 29 3b 0a 20 20 20  s2,ui3,ul4);.   
76e0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
76f0: 25 75 5c 6e 22 2c 75 63 72 29 3b 0a 20 20 20 20  %u\n",ucr);.    
7700: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20  fflush(out);.   
7710: 20 75 63 72 20 3d 20 30 3b 20 63 6c 65 61 72 5f   ucr = 0; clear_
7720: 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20 63 75  traces();.    cu
7730: 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d  rrent_function =
7740: 20 28 76 6f 69 64 2a 29 20 26 75 63 5f 75 63 73   (void*) &uc_ucs
7750: 69 6c 3b 20 75 63 72 20 3d 20 28 28 75 63 68 61  il; ucr = ((ucha
7760: 72 20 28 2a 29 20 28 75 63 68 61 72 2c 75 73 68  r (*) (uchar,ush
7770: 6f 72 74 2c 75 69 6e 74 2c 75 6c 6f 6e 67 29 29  ort,uint,ulong))
7780: 20 76 61 63 61 6c 6c 29 20 28 75 63 31 2c 75 73   vacall) (uc1,us
7790: 32 2c 75 69 33 2c 75 6c 34 29 3b 0a 20 20 20 20  2,ui3,ul4);.    
77a0: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25  fprintf(out,"->%
77b0: 75 5c 6e 22 2c 75 63 72 29 3b 0a 20 20 20 20 66  u\n",ucr);.    f
77c0: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20  flush(out);..   
77d0: 20 64 72 20 3d 20 64 5f 69 69 64 64 28 69 31 2c   dr = d_iidd(i1,
77e0: 69 32 2c 64 33 2c 64 34 29 3b 0a 20 20 20 20 66  i2,d3,d4);.    f
77f0: 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67  printf(out,"->%g
7800: 5c 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66 6c  \n",dr);.    ffl
7810: 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 64 72  ush(out);.    dr
7820: 20 3d 20 30 2e 30 3b 20 63 6c 65 61 72 5f 74 72   = 0.0; clear_tr
7830: 61 63 65 73 28 29 3b 0a 20 20 20 20 63 75 72 72  aces();.    curr
7840: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28  ent_function = (
7850: 76 6f 69 64 2a 29 20 26 64 5f 69 69 64 64 3b 20  void*) &d_iidd; 
7860: 64 72 20 3d 20 28 28 64 6f 75 62 6c 65 20 28 2a  dr = ((double (*
7870: 29 20 28 69 6e 74 2c 69 6e 74 2c 64 6f 75 62 6c  ) (int,int,doubl
7880: 65 2c 64 6f 75 62 6c 65 29 29 20 76 61 63 61 6c  e,double)) vacal
7890: 6c 29 20 28 69 31 2c 69 32 2c 64 33 2c 64 34 29  l) (i1,i2,d3,d4)
78a0: 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75  ;.    fprintf(ou
78b0: 74 2c 22 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a  t,"->%g\n",dr);.
78c0: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
78d0: 0a 0a 20 20 20 20 64 72 20 3d 20 64 5f 69 64 69  ..    dr = d_idi
78e0: 64 28 69 31 2c 64 32 2c 69 33 2c 64 34 29 3b 0a  d(i1,d2,i3,d4);.
78f0: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
7900: 22 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a 20 20  "->%g\n",dr);.  
7910: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
7920: 20 20 20 64 72 20 3d 20 30 2e 30 3b 20 63 6c 65     dr = 0.0; cle
7930: 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20  ar_traces();.   
7940: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
7950: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 64 5f 69  n = (void*) &d_i
7960: 64 69 64 3b 20 64 72 20 3d 20 28 28 64 6f 75 62  did; dr = ((doub
7970: 6c 65 20 28 2a 29 20 28 69 6e 74 2c 64 6f 75 62  le (*) (int,doub
7980: 6c 65 2c 69 6e 74 2c 64 6f 75 62 6c 65 29 29 20  le,int,double)) 
7990: 76 61 63 61 6c 6c 29 20 28 69 31 2c 64 32 2c 69  vacall) (i1,d2,i
79a0: 33 2c 64 34 29 3b 0a 20 20 20 20 66 70 72 69 6e  3,d4);.    fprin
79b0: 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c  tf(out,"->%g\n",
79c0: 64 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  dr);.    fflush(
79d0: 6f 75 74 29 3b 0a 0a 20 20 20 20 75 73 72 20 3d  out);..    usr =
79e0: 20 75 73 5f 63 64 63 64 28 63 31 2c 64 32 2c 63   us_cdcd(c1,d2,c
79f0: 33 2c 64 34 29 3b 0a 20 20 20 20 66 70 72 69 6e  3,d4);.    fprin
7a00: 74 66 28 6f 75 74 2c 22 2d 3e 25 75 5c 6e 22 2c  tf(out,"->%u\n",
7a10: 75 73 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  usr);.    fflush
7a20: 28 6f 75 74 29 3b 0a 20 20 20 20 75 73 72 20 3d  (out);.    usr =
7a30: 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73   0; clear_traces
7a40: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
7a50: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
7a60: 2a 29 20 26 75 73 5f 63 64 63 64 3b 20 75 73 72  *) &us_cdcd; usr
7a70: 20 3d 20 28 28 75 73 68 6f 72 74 20 28 2a 29 20   = ((ushort (*) 
7a80: 28 63 68 61 72 2c 64 6f 75 62 6c 65 2c 63 68 61  (char,double,cha
7a90: 72 2c 64 6f 75 62 6c 65 29 29 20 76 61 63 61 6c  r,double)) vacal
7aa0: 6c 29 20 28 63 31 2c 64 32 2c 63 33 2c 64 34 29  l) (c1,d2,c3,d4)
7ab0: 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75  ;.    fprintf(ou
7ac0: 74 2c 22 2d 3e 25 75 5c 6e 22 2c 75 73 72 29 3b  t,"->%u\n",usr);
7ad0: 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29  .    fflush(out)
7ae0: 3b 0a 0a 23 69 66 64 65 66 20 48 41 56 45 5f 4c  ;..#ifdef HAVE_L
7af0: 4f 4e 47 5f 4c 4f 4e 47 5f 49 4e 54 0a 20 20 20  ONG_LONG_INT.   
7b00: 20 6c 6c 72 20 3d 20 6c 6c 5f 66 6c 6c 69 28 66   llr = ll_flli(f
7b10: 31 33 2c 6c 6c 31 2c 69 31 33 29 3b 0a 20 20 20  13,ll1,i13);.   
7b20: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
7b30: 30 78 25 6c 78 25 30 38 6c 78 5c 6e 22 2c 28 6c  0x%lx%08lx\n",(l
7b40: 6f 6e 67 29 28 6c 6c 72 3e 3e 33 32 29 2c 28 6c  ong)(llr>>32),(l
7b50: 6f 6e 67 29 28 6c 6c 72 26 30 78 66 66 66 66 66  ong)(llr&0xfffff
7b60: 66 66 66 29 29 3b 0a 20 20 20 20 66 66 6c 75 73  fff));.    fflus
7b70: 68 28 6f 75 74 29 3b 0a 20 20 20 20 6c 6c 72 20  h(out);.    llr 
7b80: 3d 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65  = 0; clear_trace
7b90: 73 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74  s();.    current
7ba0: 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69  _function = (voi
7bb0: 64 2a 29 20 26 6c 6c 5f 66 6c 6c 69 3b 20 6c 6c  d*) &ll_flli; ll
7bc0: 72 20 3d 20 28 28 6c 6f 6e 67 20 6c 6f 6e 67 20  r = ((long long 
7bd0: 28 2a 29 20 28 66 6c 6f 61 74 2c 6c 6f 6e 67 20  (*) (float,long 
7be0: 6c 6f 6e 67 2c 69 6e 74 29 29 20 76 61 63 61 6c  long,int)) vacal
7bf0: 6c 29 20 28 66 31 33 2c 6c 6c 31 2c 69 31 33 29  l) (f13,ll1,i13)
7c00: 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75  ;.    fprintf(ou
7c10: 74 2c 22 2d 3e 30 78 25 6c 78 25 30 38 6c 78 5c  t,"->0x%lx%08lx\
7c20: 6e 22 2c 28 6c 6f 6e 67 29 28 6c 6c 72 3e 3e 33  n",(long)(llr>>3
7c30: 32 29 2c 28 6c 6f 6e 67 29 28 6c 6c 72 26 30 78  2),(long)(llr&0x
7c40: 66 66 66 66 66 66 66 66 29 29 3b 0a 20 20 20 20  ffffffff));.    
7c50: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 23 65 6e  fflush(out);.#en
7c60: 64 69 66 0a 20 20 7d 0a 0a 23 69 66 6e 64 65 66  dif.  }..#ifndef
7c70: 20 53 4b 49 50 5f 53 54 52 55 43 54 53 0a 20 20   SKIP_STRUCTS.  
7c80: 2f 2a 20 73 74 72 75 63 74 75 72 65 20 74 65 73  /* structure tes
7c90: 74 73 20 2a 2f 0a 20 20 7b 20 49 6e 74 20 49 72  ts */.  { Int Ir
7ca0: 3b 0a 20 20 20 20 43 68 61 72 20 43 72 3b 0a 20  ;.    Char Cr;. 
7cb0: 20 20 20 46 6c 6f 61 74 20 46 72 3b 0a 20 20 20     Float Fr;.   
7cc0: 20 44 6f 75 62 6c 65 20 44 72 3b 0a 20 20 20 20   Double Dr;.    
7cd0: 4a 20 4a 72 3b 0a 20 20 20 20 54 20 54 72 3b 0a  J Jr;.    T Tr;.
7ce0: 20 20 20 20 58 20 58 72 3b 0a 0a 20 20 20 20 49      X Xr;..    I
7cf0: 72 20 3d 20 49 5f 49 49 49 28 49 31 2c 49 32 2c  r = I_III(I1,I2,
7d00: 49 33 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66  I3);.    fprintf
7d10: 28 6f 75 74 2c 22 2d 3e 7b 25 64 7d 5c 6e 22 2c  (out,"->{%d}\n",
7d20: 49 72 2e 78 29 3b 0a 20 20 20 20 66 66 6c 75 73  Ir.x);.    fflus
7d30: 68 28 6f 75 74 29 3b 0a 20 20 20 20 49 72 2e 78  h(out);.    Ir.x
7d40: 20 3d 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63   = 0; clear_trac
7d50: 65 73 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e  es();.    curren
7d60: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f  t_function = (vo
7d70: 69 64 2a 29 20 26 49 5f 49 49 49 3b 20 49 72 20  id*) &I_III; Ir 
7d80: 3d 20 28 28 49 6e 74 20 28 2a 29 20 28 49 6e 74  = ((Int (*) (Int
7d90: 2c 49 6e 74 2c 49 6e 74 29 29 20 76 61 63 61 6c  ,Int,Int)) vacal
7da0: 6c 29 20 28 49 31 2c 49 32 2c 49 33 29 3b 0a 20  l) (I1,I2,I3);. 
7db0: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
7dc0: 2d 3e 7b 25 64 7d 5c 6e 22 2c 49 72 2e 78 29 3b  ->{%d}\n",Ir.x);
7dd0: 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29  .    fflush(out)
7de0: 3b 0a 0a 23 69 66 6e 64 65 66 20 53 4b 49 50 5f  ;..#ifndef SKIP_
7df0: 45 58 54 52 41 5f 53 54 52 55 43 54 53 0a 20 20  EXTRA_STRUCTS.  
7e00: 20 20 43 72 20 3d 20 43 5f 43 64 43 28 43 31 2c    Cr = C_CdC(C1,
7e10: 64 32 2c 43 33 29 3b 0a 20 20 20 20 66 70 72 69  d2,C3);.    fpri
7e20: 6e 74 66 28 6f 75 74 2c 22 2d 3e 7b 27 25 63 27  ntf(out,"->{'%c'
7e30: 7d 5c 6e 22 2c 43 72 2e 78 29 3b 0a 20 20 20 20  }\n",Cr.x);.    
7e40: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20  fflush(out);.   
7e50: 20 43 72 2e 78 20 3d 20 27 5c 30 27 3b 20 63 6c   Cr.x = '\0'; cl
7e60: 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20  ear_traces();.  
7e70: 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69    current_functi
7e80: 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 43 5f  on = (void*) &C_
7e90: 43 64 43 3b 20 43 72 20 3d 20 28 28 43 68 61 72  CdC; Cr = ((Char
7ea0: 20 28 2a 29 20 28 43 68 61 72 2c 64 6f 75 62 6c   (*) (Char,doubl
7eb0: 65 2c 43 68 61 72 29 29 20 76 61 63 61 6c 6c 29  e,Char)) vacall)
7ec0: 20 28 43 31 2c 64 32 2c 43 33 29 3b 0a 20 20 20   (C1,d2,C3);.   
7ed0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
7ee0: 7b 27 25 63 27 7d 5c 6e 22 2c 43 72 2e 78 29 3b  {'%c'}\n",Cr.x);
7ef0: 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29  .    fflush(out)
7f00: 3b 0a 0a 20 20 20 20 46 72 20 3d 20 46 5f 46 66  ;..    Fr = F_Ff
7f10: 64 28 46 31 2c 66 32 2c 64 33 29 3b 0a 20 20 20  d(F1,f2,d3);.   
7f20: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
7f30: 7b 25 67 7d 5c 6e 22 2c 46 72 2e 78 29 3b 0a 20  {%g}\n",Fr.x);. 
7f40: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
7f50: 20 20 20 20 46 72 2e 78 20 3d 20 30 2e 30 3b 20      Fr.x = 0.0; 
7f60: 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a  clear_traces();.
7f70: 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63      current_func
7f80: 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26  tion = (void*) &
7f90: 46 5f 46 66 64 3b 20 46 72 20 3d 20 28 28 46 6c  F_Ffd; Fr = ((Fl
7fa0: 6f 61 74 20 28 2a 29 20 28 46 6c 6f 61 74 2c 66  oat (*) (Float,f
7fb0: 6c 6f 61 74 2c 64 6f 75 62 6c 65 29 29 20 76 61  loat,double)) va
7fc0: 63 61 6c 6c 29 20 28 46 31 2c 66 32 2c 64 33 29  call) (F1,f2,d3)
7fd0: 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75  ;.    fprintf(ou
7fe0: 74 2c 22 2d 3e 7b 25 67 7d 5c 6e 22 2c 46 72 2e  t,"->{%g}\n",Fr.
7ff0: 78 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f  x);.    fflush(o
8000: 75 74 29 3b 0a 0a 20 20 20 20 44 72 20 3d 20 44  ut);..    Dr = D
8010: 5f 66 44 64 28 66 31 2c 44 32 2c 64 33 29 3b 0a  _fDd(f1,D2,d3);.
8020: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
8030: 22 2d 3e 7b 25 67 7d 5c 6e 22 2c 44 72 2e 78 29  "->{%g}\n",Dr.x)
8040: 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74  ;.    fflush(out
8050: 29 3b 0a 20 20 20 20 44 72 2e 78 20 3d 20 30 2e  );.    Dr.x = 0.
8060: 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28  0; clear_traces(
8070: 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66  );.    current_f
8080: 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a  unction = (void*
8090: 29 20 26 44 5f 66 44 64 3b 20 44 72 20 3d 20 28  ) &D_fDd; Dr = (
80a0: 28 44 6f 75 62 6c 65 20 28 2a 29 20 28 66 6c 6f  (Double (*) (flo
80b0: 61 74 2c 44 6f 75 62 6c 65 2c 64 6f 75 62 6c 65  at,Double,double
80c0: 29 29 20 76 61 63 61 6c 6c 29 20 28 66 31 2c 44  )) vacall) (f1,D
80d0: 32 2c 64 33 29 3b 0a 20 20 20 20 66 70 72 69 6e  2,d3);.    fprin
80e0: 74 66 28 6f 75 74 2c 22 2d 3e 7b 25 67 7d 5c 6e  tf(out,"->{%g}\n
80f0: 22 2c 44 72 2e 78 29 3b 0a 20 20 20 20 66 66 6c  ",Dr.x);.    ffl
8100: 75 73 68 28 6f 75 74 29 3b 0a 23 65 6e 64 69 66  ush(out);.#endif
8110: 0a 0a 20 20 20 20 4a 72 20 3d 20 4a 5f 4a 69 4a  ..    Jr = J_JiJ
8120: 28 4a 31 2c 69 32 2c 4a 32 29 3b 0a 20 20 20 20  (J1,i2,J2);.    
8130: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 7b  fprintf(out,"->{
8140: 25 6c 64 2c 25 6c 64 7d 5c 6e 22 2c 4a 72 2e 6c  %ld,%ld}\n",Jr.l
8150: 31 2c 4a 72 2e 6c 32 29 3b 0a 20 20 20 20 66 66  1,Jr.l2);.    ff
8160: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 4a  lush(out);.    J
8170: 72 2e 6c 31 20 3d 20 4a 72 2e 6c 32 20 3d 20 30  r.l1 = Jr.l2 = 0
8180: 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29  ; clear_traces()
8190: 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75  ;.    current_fu
81a0: 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29  nction = (void*)
81b0: 20 26 4a 5f 4a 69 4a 3b 20 4a 72 20 3d 20 28 28   &J_JiJ; Jr = ((
81c0: 4a 20 28 2a 29 20 28 4a 2c 69 6e 74 2c 4a 29 29  J (*) (J,int,J))
81d0: 20 76 61 63 61 6c 6c 29 20 28 4a 31 2c 69 32 2c   vacall) (J1,i2,
81e0: 4a 32 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66  J2);.    fprintf
81f0: 28 6f 75 74 2c 22 2d 3e 7b 25 6c 64 2c 25 6c 64  (out,"->{%ld,%ld
8200: 7d 5c 6e 22 2c 4a 72 2e 6c 31 2c 4a 72 2e 6c 32  }\n",Jr.l1,Jr.l2
8210: 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75  );.    fflush(ou
8220: 74 29 3b 0a 0a 23 69 66 6e 64 65 66 20 53 4b 49  t);..#ifndef SKI
8230: 50 5f 45 58 54 52 41 5f 53 54 52 55 43 54 53 0a  P_EXTRA_STRUCTS.
8240: 23 69 66 6e 64 65 66 20 53 4b 49 50 5f 54 0a 20  #ifndef SKIP_T. 
8250: 20 20 20 54 72 20 3d 20 54 5f 54 63 54 28 54 31     Tr = T_TcT(T1
8260: 2c 27 20 27 2c 54 32 29 3b 0a 20 20 20 20 66 70  ,' ',T2);.    fp
8270: 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 7b 5c 22  rintf(out,"->{\"
8280: 25 63 25 63 25 63 5c 22 7d 5c 6e 22 2c 54 72 2e  %c%c%c\"}\n",Tr.
8290: 63 5b 30 5d 2c 54 72 2e 63 5b 31 5d 2c 54 72 2e  c[0],Tr.c[1],Tr.
82a0: 63 5b 32 5d 29 3b 0a 20 20 20 20 66 66 6c 75 73  c[2]);.    fflus
82b0: 68 28 6f 75 74 29 3b 0a 20 20 20 20 54 72 2e 63  h(out);.    Tr.c
82c0: 5b 30 5d 20 3d 20 54 72 2e 63 5b 31 5d 20 3d 20  [0] = Tr.c[1] = 
82d0: 54 72 2e 63 5b 32 5d 20 3d 20 30 3b 20 63 6c 65  Tr.c[2] = 0; cle
82e0: 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20  ar_traces();.   
82f0: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
8300: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 54 5f 54  n = (void*) &T_T
8310: 63 54 3b 20 54 72 20 3d 20 28 28 54 20 28 2a 29  cT; Tr = ((T (*)
8320: 20 28 54 2c 63 68 61 72 2c 54 29 29 20 76 61 63   (T,char,T)) vac
8330: 61 6c 6c 29 20 28 54 31 2c 27 20 27 2c 54 32 29  all) (T1,' ',T2)
8340: 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75  ;.    fprintf(ou
8350: 74 2c 22 2d 3e 7b 5c 22 25 63 25 63 25 63 5c 22  t,"->{\"%c%c%c\"
8360: 7d 5c 6e 22 2c 54 72 2e 63 5b 30 5d 2c 54 72 2e  }\n",Tr.c[0],Tr.
8370: 63 5b 31 5d 2c 54 72 2e 63 5b 32 5d 29 3b 0a 20  c[1],Tr.c[2]);. 
8380: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
8390: 23 65 6e 64 69 66 0a 0a 23 69 66 6e 64 65 66 20  #endif..#ifndef 
83a0: 53 4b 49 50 5f 58 0a 20 20 20 20 58 72 20 3d 20  SKIP_X.    Xr = 
83b0: 58 5f 42 63 64 42 28 42 31 2c 63 32 2c 64 33 2c  X_BcdB(B1,c2,d3,
83c0: 42 32 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66  B2);.    fprintf
83d0: 28 6f 75 74 2c 22 2d 3e 7b 5c 22 25 73 5c 22 2c  (out,"->{\"%s\",
83e0: 27 25 63 27 7d 5c 6e 22 2c 58 72 2e 63 2c 58 72  '%c'}\n",Xr.c,Xr
83f0: 2e 63 31 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  .c1);.    fflush
8400: 28 6f 75 74 29 3b 0a 20 20 20 20 58 72 2e 63 5b  (out);.    Xr.c[
8410: 30 5d 3d 58 72 2e 63 31 3d 27 5c 30 27 3b 20 63  0]=Xr.c1='\0'; c
8420: 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20  lear_traces();. 
8430: 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74     current_funct
8440: 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 58  ion = (void*) &X
8450: 5f 42 63 64 42 3b 20 58 72 20 3d 20 28 28 58 20  _BcdB; Xr = ((X 
8460: 28 2a 29 20 28 42 2c 63 68 61 72 2c 64 6f 75 62  (*) (B,char,doub
8470: 6c 65 2c 42 29 29 20 76 61 63 61 6c 6c 29 20 28  le,B)) vacall) (
8480: 42 31 2c 63 32 2c 64 33 2c 42 32 29 3b 0a 20 20  B1,c2,d3,B2);.  
8490: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d    fprintf(out,"-
84a0: 3e 7b 5c 22 25 73 5c 22 2c 27 25 63 27 7d 5c 6e  >{\"%s\",'%c'}\n
84b0: 22 2c 58 72 2e 63 2c 58 72 2e 63 31 29 3b 0a 20  ",Xr.c,Xr.c1);. 
84c0: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
84d0: 23 65 6e 64 69 66 0a 23 65 6e 64 69 66 0a 20 20  #endif.#endif.  
84e0: 7d 0a 23 65 6e 64 69 66 0a 0a 20 20 65 78 69 74  }.#endif..  exit
84f0: 28 30 29 3b 0a 7d 0a                             (0);.}.