Artifact f6162a715adb3041717c6fa0497584b1b477c072:


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 32 20 42  995-1999, 2002 B
0080: 72 75 6e 6f 20 48 61 69 62 6c 65 2c 20 3c 62 72  runo Haible, <br
0090: 75 6e 6f 40 63 6c 69 73 70 2e 6f 72 67 3e 0a 20  uno@clisp.org>. 
00a0: 2a 0a 20 2a 20 54 68 69 73 20 69 73 20 66 72 65  *. * This is fre
00b0: 65 20 73 6f 66 74 77 61 72 65 20 64 69 73 74 72  e software distr
00c0: 69 62 75 74 65 64 20 75 6e 64 65 72 20 74 68 65  ibuted under the
00d0: 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62   GNU General Pub
00e0: 6c 69 63 20 4c 69 63 65 6e 63 65 0a 20 2a 20 64  lic Licence. * d
00f0: 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20  escribed in the 
0100: 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 43 6f  file COPYING. Co
0110: 6e 74 61 63 74 20 74 68 65 20 61 75 74 68 6f 72  ntact the author
0120: 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 68 61   if you don't ha
0130: 76 65 20 74 68 69 73 0a 20 2a 20 6f 72 20 63 61  ve this. * or ca
0140: 6e 27 74 20 6c 69 76 65 20 77 69 74 68 20 69 74  n't live with it
0150: 2e 20 54 68 65 72 65 20 69 73 20 41 42 53 4f 4c  . There is ABSOL
0160: 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54  UTELY NO WARRANT
0170: 59 2c 20 65 78 70 6c 69 63 69 74 20 6f 72 20 69  Y, explicit or i
0180: 6d 70 6c 69 65 64 2c 0a 20 2a 20 6f 6e 20 74 68  mplied,. * on th
0190: 69 73 20 73 6f 66 74 77 61 72 65 2e 0a 20 2a 2f  is software.. */
01a0: 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69  ..#include <stdi
01b0: 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73  o.h>.#include <s
01c0: 74 64 6c 69 62 2e 68 3e 0a 23 69 6e 63 6c 75 64  tdlib.h>.#includ
01d0: 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 23 69 6e  e <string.h>.#in
01e0: 63 6c 75 64 65 20 22 76 61 63 61 6c 6c 2e 68 22  clude "vacall.h"
01f0: 0a 46 49 4c 45 2a 20 6f 75 74 3b 0a 0a 2f 2a 20  .FILE* out;../* 
0200: 4e 42 20 73 69 6e 63 65 20 4b 26 52 20 43 20 61  NB since K&R C a
0210: 6c 77 61 79 73 20 70 61 73 73 65 73 20 63 68 61  lways passes cha
0220: 72 73 20 61 6e 64 20 73 68 6f 72 74 73 20 61 73  rs and shorts as
0230: 20 69 6e 74 73 20 61 6e 64 20 66 6c 6f 61 74 73   ints and floats
0240: 20 61 73 20 64 6f 75 62 6c 65 73 2c 0a 20 2a 20   as doubles,. * 
0250: 75 6e 70 72 6f 74 6f 74 79 70 65 64 20 41 4e 53  unprototyped ANS
0260: 49 2d 43 20 66 75 6e 63 74 69 6f 6e 73 20 6d 75  I-C functions mu
0270: 73 74 20 64 6f 20 74 68 65 20 73 61 6d 65 2c 20  st do the same, 
0280: 65 67 3a 0a 20 2a 20 2d 20 66 6f 6f 28 78 29 20  eg:. * - foo(x) 
0290: 66 6c 6f 61 74 20 78 3b 20 7b 20 2e 2e 2e 20 7d  float x; { ... }
02a0: 20 70 61 73 73 65 73 20 78 20 61 73 20 61 20 64   passes x as a d
02b0: 6f 75 62 6c 65 20 26 20 63 6f 6e 76 65 72 74 73  ouble & converts
02c0: 20 69 74 20 74 6f 20 61 20 66 6c 6f 61 74 20 69   it to a float i
02d0: 6e 74 65 72 6e 61 6c 6c 79 2e 0a 20 2a 20 2d 20  nternally.. * - 
02e0: 66 6f 6f 28 66 6c 6f 61 74 20 78 29 20 7b 20 2e  foo(float x) { .
02f0: 2e 2e 20 7d 20 70 61 73 73 65 73 20 78 20 61 73  .. } passes x as
0300: 20 61 20 66 6c 6f 61 74 2e 0a 20 2a 2f 0a 23 69   a float.. */.#i
0310: 66 20 64 65 66 69 6e 65 64 28 5f 5f 53 54 44 43  f defined(__STDC
0320: 5f 5f 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 5f  __) || defined(_
0330: 5f 47 4e 55 43 5f 5f 29 20 7c 7c 20 64 65 66 69  _GNUC__) || defi
0340: 6e 65 64 28 5f 5f 63 70 6c 75 73 70 6c 75 73 29  ned(__cplusplus)
0350: 0a 23 64 65 66 69 6e 65 20 5f 20 2c 0a 23 64 65  .#define _ ,.#de
0360: 66 69 6e 65 20 5f 50 28 41 52 47 53 2c 54 59 50  fine _P(ARGS,TYP
0370: 45 53 29 20 28 54 59 50 45 53 29 0a 23 64 65 66  ES) (TYPES).#def
0380: 69 6e 65 20 46 54 59 50 45 28 52 45 54 54 59 50  ine FTYPE(RETTYP
0390: 45 2c 41 52 47 54 59 50 45 53 29 20 28 52 45 54  E,ARGTYPES) (RET
03a0: 54 59 50 45 20 28 2a 29 20 41 52 47 54 59 50 45  TYPE (*) ARGTYPE
03b0: 53 29 0a 23 65 6c 73 65 0a 23 64 65 66 69 6e 65  S).#else.#define
03c0: 20 5f 20 3b 0a 23 64 65 66 69 6e 65 20 5f 50 28   _ ;.#define _P(
03d0: 41 52 47 53 2c 54 59 50 45 53 29 20 41 52 47 53  ARGS,TYPES) ARGS
03e0: 20 54 59 50 45 53 3b 0a 23 64 65 66 69 6e 65 20   TYPES;.#define 
03f0: 46 54 59 50 45 28 52 45 54 54 59 50 45 2c 41 52  FTYPE(RETTYPE,AR
0400: 47 54 59 50 45 53 29 20 28 52 45 54 54 59 50 45  GTYPES) (RETTYPE
0410: 20 28 2a 29 20 28 29 29 0a 23 65 6e 64 69 66 0a   (*) ()).#endif.
0420: 0a 23 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 68  .#if defined(__h
0430: 70 70 61 5f 5f 29 20 26 26 20 64 65 66 69 6e 65  ppa__) && define
0440: 64 28 5f 5f 47 4e 55 43 5f 5f 29 0a 23 69 66 20  d(__GNUC__).#if 
0450: 28 5f 5f 47 4e 55 43 5f 5f 20 3d 3d 20 32 20 26  (__GNUC__ == 2 &
0460: 26 20 5f 5f 47 4e 55 43 5f 4d 49 4e 4f 52 5f 5f  & __GNUC_MINOR__
0470: 20 3c 20 36 29 0a 2f 2a 20 67 63 63 2d 32 2e 35   < 6)./* gcc-2.5
0480: 2e 32 20 62 75 67 73 20 70 72 65 76 65 6e 74 20  .2 bugs prevent 
0490: 74 68 65 20 54 20 74 65 73 74 20 66 72 6f 6d 20  the T test from 
04a0: 77 6f 72 6b 69 6e 67 2e 20 2a 2f 0a 23 64 65 66  working. */.#def
04b0: 69 6e 65 20 53 4b 49 50 5f 54 0a 23 65 6e 64 69  ine SKIP_T.#endi
04c0: 66 0a 23 65 6e 64 69 66 0a 23 69 66 20 64 65 66  f.#endif.#if def
04d0: 69 6e 65 64 28 5f 5f 6d 36 38 6b 5f 5f 29 20 26  ined(__m68k__) &
04e0: 26 20 64 65 66 69 6e 65 64 28 73 75 6e 29 20 26  & defined(sun) &
04f0: 26 20 21 64 65 66 69 6e 65 64 28 5f 5f 47 4e 55  & !defined(__GNU
0500: 43 5f 5f 29 0a 2f 2a 20 41 20 53 75 6e 4f 53 20  C__)./* A SunOS 
0510: 34 2e 30 2e 33 20 63 63 20 62 75 67 20 69 73 20  4.0.3 cc bug is 
0520: 74 72 69 67 67 65 72 65 64 20 62 79 20 74 68 65  triggered by the
0530: 20 76 61 5f 61 72 67 5f 73 74 72 75 63 74 20 6d   va_arg_struct m
0540: 61 63 72 6f 2e 20 2a 2f 0a 23 64 65 66 69 6e 65  acro. */.#define
0550: 20 53 4b 49 50 5f 53 54 52 55 43 54 53 0a 23 65   SKIP_STRUCTS.#e
0560: 6e 64 69 66 0a 23 69 66 20 64 65 66 69 6e 65 64  ndif.#if defined
0570: 28 5f 5f 6d 36 38 6b 5f 5f 29 20 26 26 20 64 65  (__m68k__) && de
0580: 66 69 6e 65 64 28 5f 5f 47 4e 55 43 5f 5f 29 0a  fined(__GNUC__).
0590: 2f 2a 20 22 67 63 63 2d 32 2e 36 2e 33 20 2d 66  /* "gcc-2.6.3 -f
05a0: 72 65 67 2d 73 74 72 75 63 74 2d 72 65 74 75 72  reg-struct-retur
05b0: 6e 22 20 72 65 74 75 72 6e 73 20 20 54 20 3d 20  n" returns  T = 
05c0: 73 74 72 75 63 74 20 7b 20 63 68 61 72 20 63 5b  struct { char c[
05d0: 33 5d 3b 20 7d 20 20 28 77 68 69 63 68 0a 20 2a  3]; }  (which. *
05e0: 20 68 61 73 20 73 69 7a 65 20 34 20 21 29 20 69   has size 4 !) i
05f0: 6e 20 6d 65 6d 6f 72 79 2c 20 69 6e 20 63 6f 6e  n memory, in con
0600: 74 72 61 73 74 20 74 6f 20 20 73 74 72 75 63 74  trast to  struct
0610: 20 7b 20 63 68 61 72 20 61 2c 62 2c 63 3b 20 7d   { char a,b,c; }
0620: 20 20 61 6e 64 0a 20 2a 20 73 74 72 75 63 74 20    and. * struct 
0630: 7b 20 63 68 61 72 20 63 5b 34 5d 3b 20 7d 20 20  { char c[4]; }  
0640: 61 6e 64 20 20 73 74 72 75 63 74 20 7b 20 63 68  and  struct { ch
0650: 61 72 20 61 2c 62 2c 63 2c 64 3b 20 7d 20 20 77  ar a,b,c,d; }  w
0660: 68 69 63 68 20 68 61 76 65 20 74 68 65 20 73 61  hich have the sa
0670: 6d 65 0a 20 2a 20 73 69 7a 65 20 61 6e 64 20 74  me. * size and t
0680: 68 65 20 73 61 6d 65 20 61 6c 69 67 6e 6d 65 6e  he same alignmen
0690: 74 20 62 75 74 20 61 72 65 20 72 65 74 75 72 6e  t but are return
06a0: 65 64 20 69 6e 20 72 65 67 69 73 74 65 72 73 2e  ed in registers.
06b0: 20 49 20 64 6f 6e 27 74 20 6b 6e 6f 77 20 77 68   I don't know wh
06c0: 79 2e 0a 20 2a 2f 0a 23 64 65 66 69 6e 65 20 53  y.. */.#define S
06d0: 4b 49 50 5f 54 0a 23 65 6e 64 69 66 0a 23 69 66  KIP_T.#endif.#if
06e0: 20 64 65 66 69 6e 65 64 28 5f 5f 69 33 38 36 5f   defined(__i386_
06f0: 5f 29 20 26 26 20 64 65 66 69 6e 65 64 28 5f 5f  _) && defined(__
0700: 47 4e 55 43 5f 5f 29 0a 23 69 66 20 28 5f 5f 47  GNUC__).#if (__G
0710: 4e 55 43 5f 5f 20 3d 3d 20 32 29 20 26 26 20 28  NUC__ == 2) && (
0720: 5f 5f 47 4e 55 43 5f 4d 49 4e 4f 52 5f 5f 20 3d  __GNUC_MINOR__ =
0730: 3d 20 37 29 0a 2f 2a 20 50 72 6f 62 6c 65 6d 20  = 7)./* Problem 
0740: 77 69 74 68 20 67 63 63 2d 32 2e 37 2e 78 20 6f  with gcc-2.7.x o
0750: 6e 20 4c 69 6e 75 78 2f 45 4c 46 3a 20 54 68 65  n Linux/ELF: The
0760: 20 58 20 74 65 73 74 20 66 61 69 6c 73 2e 0a 20   X test fails.. 
0770: 2a 20 54 68 65 20 63 61 6c 6c 69 6e 67 20 63 6f  * The calling co
0780: 6e 76 65 6e 74 69 6f 6e 20 66 6f 72 20 43 20 66  nvention for C f
0790: 75 6e 63 74 69 6f 6e 73 20 72 65 74 75 72 6e 69  unctions returni
07a0: 6e 67 20 73 74 72 75 63 74 75 72 65 73 20 6f 66  ng structures of
07b0: 20 73 69 7a 65 20 3e 20 38 20 62 79 74 65 73 0a   size > 8 bytes.
07c0: 20 2a 20 61 70 70 61 72 65 6e 74 6c 79 20 68 61   * apparently ha
07d0: 73 20 63 68 61 6e 67 65 64 20 62 65 74 77 65 65  s changed betwee
07e0: 6e 20 67 63 63 2d 32 2e 36 2e 33 20 61 6e 64 20  n gcc-2.6.3 and 
07f0: 67 63 63 2d 32 2e 37 20 28 61 6c 6c 20 69 33 38  gcc-2.7 (all i38
0800: 36 20 70 6c 61 74 66 6f 72 6d 73 29 2c 0a 20 2a  6 platforms),. *
0810: 20 61 6e 64 20 76 61 63 61 6c 6c 20 73 75 70 70   and vacall supp
0820: 6f 72 74 73 20 6f 6e 6c 79 20 74 68 65 20 6f 6c  orts only the ol
0830: 64 20 6f 6e 65 2e 20 53 69 6e 63 65 20 67 63 63  d one. Since gcc
0840: 2d 32 2e 38 20 77 69 6c 6c 20 73 77 69 74 63 68  -2.8 will switch
0850: 20 62 61 63 6b 20 74 6f 0a 20 2a 20 67 63 63 2d   back to. * gcc-
0860: 32 2e 36 2e 33 27 73 20 63 61 6c 6c 69 6e 67 20  2.6.3's calling 
0870: 63 6f 6e 76 65 6e 74 69 6f 6e 2c 20 49 20 77 6f  convention, I wo
0880: 6e 27 74 20 63 68 61 6e 67 65 20 66 66 63 61 6c  n't change ffcal
0890: 6c 2f 76 61 63 61 6c 6c 20 66 6f 72 20 74 68 69  l/vacall for thi
08a0: 73 2e 0a 20 2a 20 4a 75 73 74 20 68 69 64 65 20  s.. * Just hide 
08b0: 74 68 65 20 70 72 6f 62 6c 65 6d 20 62 79 20 6e  the problem by n
08c0: 6f 74 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 74  ot running the t
08d0: 65 73 74 2e 20 54 68 65 20 69 6d 70 61 63 74 20  est. The impact 
08e0: 69 73 6e 27 74 20 62 69 67 20 66 6f 72 0a 20 2a  isn't big for. *
08f0: 20 43 4c 49 53 50 3a 20 43 61 6c 6c 62 61 63 6b   CLISP: Callback
0900: 73 20 72 65 74 75 72 6e 69 6e 67 20 73 74 72 75  s returning stru
0910: 63 74 75 72 65 73 20 3e 20 38 20 62 79 74 65 73  ctures > 8 bytes
0920: 20 77 6f 6e 27 74 20 77 6f 72 6b 2e 0a 20 2a 2f   won't work.. */
0930: 0a 23 64 65 66 69 6e 65 20 53 4b 49 50 5f 58 0a  .#define SKIP_X.
0940: 23 65 6e 64 69 66 0a 23 65 6e 64 69 66 0a 23 69  #endif.#endif.#i
0950: 66 20 64 65 66 69 6e 65 64 28 5f 5f 73 70 61 72  f defined(__spar
0960: 63 5f 5f 29 20 26 26 20 64 65 66 69 6e 65 64 28  c__) && defined(
0970: 73 75 6e 29 20 26 26 20 64 65 66 69 6e 65 64 28  sun) && defined(
0980: 5f 5f 53 55 4e 50 52 4f 5f 43 29 20 2f 2a 20 53  __SUNPRO_C) /* S
0990: 55 4e 57 73 70 72 6f 20 63 63 20 2a 2f 0a 2f 2a  UNWspro cc */./*
09a0: 20 53 75 6e 50 52 4f 20 63 63 20 6d 69 73 63 6f   SunPRO cc misco
09b0: 6d 70 69 6c 65 73 20 74 68 65 20 73 69 6d 75 6c  mpiles the simul
09c0: 61 74 6f 72 20 66 75 6e 63 74 69 6f 6e 20 66 6f  ator function fo
09d0: 72 20 58 5f 42 63 64 42 3a 20 64 2e 69 5b 31 5d  r X_BcdB: d.i[1]
09e0: 20 69 73 0a 20 2a 20 74 65 6d 70 6f 72 61 72 69   is. * temporari
09f0: 6c 79 20 73 74 6f 72 65 64 20 69 6e 20 25 6c 32  ly stored in %l2
0a00: 20 61 6e 64 20 70 75 74 20 6f 6e 74 6f 20 74 68   and put onto th
0a10: 65 20 73 74 61 63 6b 20 66 72 6f 6d 20 25 6c 32  e stack from %l2
0a20: 2c 20 62 75 74 20 69 6e 20 62 65 74 77 65 65 6e  , but in between
0a30: 0a 20 2a 20 74 68 65 20 63 6f 70 79 20 6f 66 20  . * the copy of 
0a40: 58 20 68 61 73 20 75 73 65 64 20 25 6c 32 20 61  X has used %l2 a
0a50: 73 20 61 20 63 6f 75 6e 74 65 72 20 77 69 74 68  s a counter with
0a60: 6f 75 74 20 73 61 76 69 6e 67 20 61 6e 64 20 72  out saving and r
0a70: 65 73 74 6f 72 69 6e 67 20 69 74 73 0a 20 2a 20  estoring its. * 
0a80: 76 61 6c 75 65 2e 0a 20 2a 2f 0a 23 64 65 66 69  value.. */.#defi
0a90: 6e 65 20 53 4b 49 50 5f 58 0a 23 65 6e 64 69 66  ne SKIP_X.#endif
0aa0: 0a 23 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 6d  .#if defined(__m
0ab0: 69 70 73 6e 33 32 5f 5f 29 20 26 26 20 21 64 65  ipsn32__) && !de
0ac0: 66 69 6e 65 64 28 5f 5f 47 4e 55 43 5f 5f 29 0a  fined(__GNUC__).
0ad0: 2f 2a 20 54 68 65 20 58 20 74 65 73 74 20 63 72  /* The X test cr
0ae0: 61 73 68 65 73 20 66 6f 72 20 61 6e 20 75 6e 6b  ashes for an unk
0af0: 6e 6f 77 6e 20 72 65 61 73 6f 6e 2e 20 2a 2f 0a  nown reason. */.
0b00: 23 64 65 66 69 6e 65 20 53 4b 49 50 5f 58 0a 23  #define SKIP_X.#
0b10: 65 6e 64 69 66 0a 0a 23 64 65 66 69 6e 65 20 75  endif..#define u
0b20: 63 68 61 72 20 75 6e 73 69 67 6e 65 64 20 63 68  char unsigned ch
0b30: 61 72 0a 23 64 65 66 69 6e 65 20 75 73 68 6f 72  ar.#define ushor
0b40: 74 20 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74  t unsigned short
0b50: 0a 23 64 65 66 69 6e 65 20 75 69 6e 74 20 75 6e  .#define uint un
0b60: 73 69 67 6e 65 64 20 69 6e 74 0a 23 64 65 66 69  signed int.#defi
0b70: 6e 65 20 75 6c 6f 6e 67 20 75 6e 73 69 67 6e 65  ne ulong unsigne
0b80: 64 20 6c 6f 6e 67 0a 0a 74 79 70 65 64 65 66 20  d long..typedef 
0b90: 73 74 72 75 63 74 20 7b 20 63 68 61 72 20 78 3b  struct { char x;
0ba0: 20 7d 20 43 68 61 72 3b 0a 74 79 70 65 64 65 66   } Char;.typedef
0bb0: 20 73 74 72 75 63 74 20 7b 20 73 68 6f 72 74 20   struct { short 
0bc0: 78 3b 20 7d 20 53 68 6f 72 74 3b 0a 74 79 70 65  x; } Short;.type
0bd0: 64 65 66 20 73 74 72 75 63 74 20 7b 20 69 6e 74  def struct { int
0be0: 20 78 3b 20 7d 20 49 6e 74 3b 0a 74 79 70 65 64   x; } Int;.typed
0bf0: 65 66 20 73 74 72 75 63 74 20 7b 20 6c 6f 6e 67  ef struct { long
0c00: 20 78 3b 20 7d 20 4c 6f 6e 67 3b 0a 74 79 70 65   x; } Long;.type
0c10: 64 65 66 20 73 74 72 75 63 74 20 7b 20 66 6c 6f  def struct { flo
0c20: 61 74 20 78 3b 20 7d 20 46 6c 6f 61 74 3b 0a 74  at x; } Float;.t
0c30: 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 20  ypedef struct { 
0c40: 64 6f 75 62 6c 65 20 78 3b 20 7d 20 44 6f 75 62  double x; } Doub
0c50: 6c 65 3b 0a 74 79 70 65 64 65 66 20 73 74 72 75  le;.typedef stru
0c60: 63 74 20 7b 20 63 68 61 72 20 63 3b 20 66 6c 6f  ct { char c; flo
0c70: 61 74 20 66 3b 20 7d 20 41 3b 0a 74 79 70 65 64  at f; } A;.typed
0c80: 65 66 20 73 74 72 75 63 74 20 7b 20 64 6f 75 62  ef struct { doub
0c90: 6c 65 20 64 3b 20 69 6e 74 20 69 5b 33 5d 3b 20  le d; int i[3]; 
0ca0: 7d 20 42 3b 0a 74 79 70 65 64 65 66 20 73 74 72  } B;.typedef str
0cb0: 75 63 74 20 7b 20 6c 6f 6e 67 20 6c 31 3b 20 6c  uct { long l1; l
0cc0: 6f 6e 67 20 6c 32 3b 20 7d 20 4a 3b 0a 74 79 70  ong l2; } J;.typ
0cd0: 65 64 65 66 20 73 74 72 75 63 74 20 7b 20 63 68  edef struct { ch
0ce0: 61 72 20 63 5b 33 5d 3b 20 7d 20 54 3b 0a 74 79  ar c[3]; } T;.ty
0cf0: 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 20 63  pedef struct { c
0d00: 68 61 72 20 63 5b 33 33 5d 2c 63 31 3b 20 7d 20  har c[33],c1; } 
0d10: 58 3b 0a 0a 63 68 61 72 20 63 31 3d 27 61 27 2c  X;..char c1='a',
0d20: 20 63 32 3d 31 32 37 2c 20 63 33 3d 28 63 68 61   c2=127, c3=(cha
0d30: 72 29 31 32 38 2c 20 63 34 3d 28 63 68 61 72 29  r)128, c4=(char)
0d40: 32 35 35 2c 20 63 35 3d 2d 31 3b 0a 73 68 6f 72  255, c5=-1;.shor
0d50: 74 20 73 31 3d 33 32 37 36 37 2c 20 73 32 3d 28  t s1=32767, s2=(
0d60: 73 68 6f 72 74 29 33 32 37 36 38 2c 20 73 33 3d  short)32768, s3=
0d70: 33 2c 20 73 34 3d 34 2c 20 73 35 3d 35 2c 20 73  3, s4=4, s5=5, s
0d80: 36 3d 36 2c 20 73 37 3d 37 2c 20 73 38 3d 38 2c  6=6, s7=7, s8=8,
0d90: 20 73 39 3d 39 3b 0a 69 6e 74 20 69 31 3d 31 2c   s9=9;.int i1=1,
0da0: 20 69 32 3d 32 2c 20 69 33 3d 33 2c 20 69 34 3d   i2=2, i3=3, i4=
0db0: 34 2c 20 69 35 3d 35 2c 20 69 36 3d 36 2c 20 69  4, i5=5, i6=6, i
0dc0: 37 3d 37 2c 20 69 38 3d 38 2c 20 69 39 3d 39 2c  7=7, i8=8, i9=9,
0dd0: 0a 20 20 20 20 69 31 30 3d 31 31 2c 20 69 31 31  .    i10=11, i11
0de0: 3d 31 32 2c 20 69 31 32 3d 31 33 2c 20 69 31 33  =12, i12=13, i13
0df0: 3d 31 34 2c 20 69 31 34 3d 31 35 2c 20 69 31 35  =14, i14=15, i15
0e00: 3d 31 36 2c 20 69 31 36 3d 31 37 3b 0a 6c 6f 6e  =16, i16=17;.lon
0e10: 67 20 6c 31 3d 31 2c 20 6c 32 3d 32 2c 20 6c 33  g l1=1, l2=2, l3
0e20: 3d 33 2c 20 6c 34 3d 34 2c 20 6c 35 3d 35 2c 20  =3, l4=4, l5=5, 
0e30: 6c 36 3d 36 2c 20 6c 37 3d 37 2c 20 6c 38 3d 38  l6=6, l7=7, l8=8
0e40: 2c 20 6c 39 3d 39 3b 0a 23 69 66 64 65 66 20 48  , l9=9;.#ifdef H
0e50: 41 56 45 5f 4c 4f 4e 47 4c 4f 4e 47 0a 6c 6f 6e  AVE_LONGLONG.lon
0e60: 67 20 6c 6f 6e 67 20 6c 6c 31 20 3d 20 33 38 37  g long ll1 = 387
0e70: 35 30 35 36 31 34 33 31 33 30 36 38 39 35 33 30  5056143130689530
0e80: 4c 4c 3b 0a 23 65 6e 64 69 66 0a 66 6c 6f 61 74  LL;.#endif.float
0e90: 20 66 31 3d 30 2e 31 2c 20 66 32 3d 30 2e 32 2c   f1=0.1, f2=0.2,
0ea0: 20 66 33 3d 30 2e 33 2c 20 66 34 3d 30 2e 34 2c   f3=0.3, f4=0.4,
0eb0: 20 66 35 3d 30 2e 35 2c 20 66 36 3d 30 2e 36 2c   f5=0.5, f6=0.6,
0ec0: 20 66 37 3d 30 2e 37 2c 20 66 38 3d 30 2e 38 2c   f7=0.7, f8=0.8,
0ed0: 20 66 39 3d 30 2e 39 2c 0a 20 20 20 20 20 20 66   f9=0.9,.      f
0ee0: 31 30 3d 31 2e 31 2c 20 66 31 31 3d 31 2e 32 2c  10=1.1, f11=1.2,
0ef0: 20 66 31 32 3d 31 2e 33 2c 20 66 31 33 3d 31 2e   f12=1.3, f13=1.
0f00: 34 2c 20 66 31 34 3d 31 2e 35 2c 20 66 31 35 3d  4, f14=1.5, f15=
0f10: 31 2e 36 2c 20 66 31 36 3d 31 2e 37 3b 0a 64 6f  1.6, f16=1.7;.do
0f20: 75 62 6c 65 20 64 31 3d 30 2e 31 2c 20 64 32 3d  uble d1=0.1, d2=
0f30: 30 2e 32 2c 20 64 33 3d 30 2e 33 2c 20 64 34 3d  0.2, d3=0.3, d4=
0f40: 30 2e 34 2c 20 64 35 3d 30 2e 35 2c 20 64 36 3d  0.4, d5=0.5, d6=
0f50: 30 2e 36 2c 20 64 37 3d 30 2e 37 2c 20 64 38 3d  0.6, d7=0.7, d8=
0f60: 30 2e 38 2c 20 64 39 3d 30 2e 39 2c 0a 20 20 20  0.8, d9=0.9,.   
0f70: 20 20 20 20 64 31 30 3d 31 2e 31 2c 20 64 31 31      d10=1.1, d11
0f80: 3d 31 2e 32 2c 20 64 31 32 3d 31 2e 33 2c 20 64  =1.2, d12=1.3, d
0f90: 31 33 3d 31 2e 34 2c 20 64 31 34 3d 31 2e 35 2c  13=1.4, d14=1.5,
0fa0: 20 64 31 35 3d 31 2e 36 2c 20 64 31 36 3d 31 2e   d15=1.6, d16=1.
0fb0: 37 3b 0a 0a 75 63 68 61 72 20 75 63 31 3d 27 61  7;..uchar uc1='a
0fc0: 27 2c 20 75 63 32 3d 31 32 37 2c 20 75 63 33 3d  ', uc2=127, uc3=
0fd0: 31 32 38 2c 20 75 63 34 3d 32 35 35 2c 20 75 63  128, uc4=255, uc
0fe0: 35 3d 2d 31 3b 0a 75 73 68 6f 72 74 20 75 73 31  5=-1;.ushort us1
0ff0: 3d 31 2c 20 75 73 32 3d 32 2c 20 75 73 33 3d 33  =1, us2=2, us3=3
1000: 2c 20 75 73 34 3d 34 2c 20 75 73 35 3d 35 2c 20  , us4=4, us5=5, 
1010: 75 73 36 3d 36 2c 20 75 73 37 3d 37 2c 20 75 73  us6=6, us7=7, us
1020: 38 3d 38 2c 20 75 73 39 3d 39 3b 0a 75 69 6e 74  8=8, us9=9;.uint
1030: 20 75 69 31 3d 31 2c 20 75 69 32 3d 32 2c 20 75   ui1=1, ui2=2, u
1040: 69 33 3d 33 2c 20 75 69 34 3d 34 2c 20 75 69 35  i3=3, ui4=4, ui5
1050: 3d 35 2c 20 75 69 36 3d 36 2c 20 75 69 37 3d 37  =5, ui6=6, ui7=7
1060: 2c 20 75 69 38 3d 38 2c 20 75 69 39 3d 39 3b 0a  , ui8=8, ui9=9;.
1070: 75 6c 6f 6e 67 20 75 6c 31 3d 31 2c 20 75 6c 32  ulong ul1=1, ul2
1080: 3d 32 2c 20 75 6c 33 3d 33 2c 20 75 6c 34 3d 34  =2, ul3=3, ul4=4
1090: 2c 20 75 6c 35 3d 35 2c 20 75 6c 36 3d 36 2c 20  , ul5=5, ul6=6, 
10a0: 75 6c 37 3d 37 2c 20 75 6c 38 3d 38 2c 20 75 6c  ul7=7, ul8=8, ul
10b0: 39 3d 39 3b 0a 0a 63 68 61 72 20 2a 73 74 72 31  9=9;..char *str1
10c0: 3d 22 68 65 6c 6c 6f 22 2c 73 74 72 32 5b 5d 3d  ="hello",str2[]=
10d0: 22 67 6f 6f 64 62 79 65 22 2c 2a 73 74 72 33 3d  "goodbye",*str3=
10e0: 22 73 74 69 6c 6c 20 68 65 72 65 3f 22 3b 0a 43  "still here?";.C
10f0: 68 61 72 20 43 31 3d 7b 27 41 27 7d 2c 20 43 32  har C1={'A'}, C2
1100: 3d 7b 27 42 27 7d 2c 20 43 33 3d 7b 27 43 27 7d  ={'B'}, C3={'C'}
1110: 2c 20 43 34 3d 7b 27 5c 33 37 37 27 7d 2c 20 43  , C4={'\377'}, C
1120: 35 3d 7b 2d 31 7d 3b 0a 53 68 6f 72 74 20 53 31  5={-1};.Short S1
1130: 3d 7b 31 7d 2c 20 53 32 3d 7b 32 7d 2c 20 53 33  ={1}, S2={2}, S3
1140: 3d 7b 33 7d 2c 20 53 34 3d 7b 34 7d 2c 20 53 35  ={3}, S4={4}, S5
1150: 3d 7b 35 7d 2c 20 53 36 3d 7b 36 7d 2c 20 53 37  ={5}, S6={6}, S7
1160: 3d 7b 37 7d 2c 20 53 38 3d 7b 38 7d 2c 20 53 39  ={7}, S8={8}, S9
1170: 3d 7b 39 7d 3b 0a 49 6e 74 20 49 31 3d 7b 31 7d  ={9};.Int I1={1}
1180: 2c 20 49 32 3d 7b 32 7d 2c 20 49 33 3d 7b 33 7d  , I2={2}, I3={3}
1190: 2c 20 49 34 3d 7b 34 7d 2c 20 49 35 3d 7b 35 7d  , I4={4}, I5={5}
11a0: 2c 20 49 36 3d 7b 36 7d 2c 20 49 37 3d 7b 37 7d  , I6={6}, I7={7}
11b0: 2c 20 49 38 3d 7b 38 7d 2c 20 49 39 3d 7b 39 7d  , I8={8}, I9={9}
11c0: 3b 0a 46 6c 6f 61 74 20 46 31 3d 7b 30 2e 31 7d  ;.Float F1={0.1}
11d0: 2c 20 46 32 3d 7b 30 2e 32 7d 2c 20 46 33 3d 7b  , F2={0.2}, F3={
11e0: 30 2e 33 7d 2c 20 46 34 3d 7b 30 2e 34 7d 2c 20  0.3}, F4={0.4}, 
11f0: 46 35 3d 7b 30 2e 35 7d 2c 20 46 36 3d 7b 30 2e  F5={0.5}, F6={0.
1200: 36 7d 2c 20 46 37 3d 7b 30 2e 37 7d 2c 20 46 38  6}, F7={0.7}, F8
1210: 3d 7b 30 2e 38 7d 2c 20 46 39 3d 7b 30 2e 39 7d  ={0.8}, F9={0.9}
1220: 3b 0a 44 6f 75 62 6c 65 20 44 31 3d 7b 30 2e 31  ;.Double D1={0.1
1230: 7d 2c 20 44 32 3d 7b 30 2e 32 7d 2c 20 44 33 3d  }, D2={0.2}, D3=
1240: 7b 30 2e 33 7d 2c 20 44 34 3d 7b 30 2e 34 7d 2c  {0.3}, D4={0.4},
1250: 20 44 35 3d 7b 30 2e 35 7d 2c 20 44 36 3d 7b 30   D5={0.5}, D6={0
1260: 2e 36 7d 2c 20 44 37 3d 7b 30 2e 37 7d 2c 20 44  .6}, D7={0.7}, D
1270: 38 3d 7b 30 2e 38 7d 2c 20 44 39 3d 7b 30 2e 39  8={0.8}, D9={0.9
1280: 7d 3b 0a 0a 41 20 41 31 3d 7b 27 61 27 2c 30 2e  };..A A1={'a',0.
1290: 31 7d 2c 41 32 3d 7b 27 62 27 2c 30 2e 32 7d 2c  1},A2={'b',0.2},
12a0: 41 33 3d 7b 27 5c 33 37 37 27 2c 30 2e 33 7d 3b  A3={'\377',0.3};
12b0: 0a 42 20 42 31 3d 7b 30 2e 31 2c 7b 31 2c 32 2c  .B B1={0.1,{1,2,
12c0: 33 7d 7d 2c 42 32 3d 7b 30 2e 32 2c 7b 35 2c 34  3}},B2={0.2,{5,4
12d0: 2c 33 7d 7d 3b 0a 4a 20 4a 31 3d 7b 34 37 2c 31  ,3}};.J J1={47,1
12e0: 31 7d 2c 4a 32 3d 7b 37 33 2c 35 35 7d 3b 0a 54  1},J2={73,55};.T
12f0: 20 54 31 3d 7b 27 74 27 2c 27 68 27 2c 27 65 27   T1={'t','h','e'
1300: 7d 2c 54 32 3d 7b 27 66 27 2c 27 6f 27 2c 27 78  },T2={'f','o','x
1310: 27 7d 3b 0a 58 20 58 31 3d 7b 22 61 62 63 64 65  '};.X X1={"abcde
1320: 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75  fghijklmnopqrstu
1330: 76 77 78 79 7a 41 42 43 44 45 46 22 2c 27 47 27  vwxyzABCDEF",'G'
1340: 7d 2c 20 58 32 3d 7b 22 31 32 33 22 2c 27 39 27  }, X2={"123",'9'
1350: 7d 2c 20 58 33 3d 7b 22 72 65 74 75 72 6e 2d 72  }, X3={"return-r
1360: 65 74 75 72 6e 2d 72 65 74 75 72 6e 22 2c 27 52  eturn-return",'R
1370: 27 7d 3b 0a 0a 2f 2a 20 76 6f 69 64 20 74 65 73  '};../* void tes
1380: 74 73 20 2a 2f 0a 76 6f 69 64 20 76 5f 76 28 29  ts */.void v_v()
1390: 0a 7b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .{.  fprintf(out
13a0: 2c 22 76 6f 69 64 20 66 28 76 6f 69 64 29 3a 5c  ,"void f(void):\
13b0: 6e 22 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75  n");.  fflush(ou
13c0: 74 29 3b 0a 7d 0a 0a 2f 2a 20 69 6e 74 20 74 65  t);.}../* int te
13d0: 73 74 73 20 2a 2f 0a 69 6e 74 20 69 5f 76 28 29  sts */.int i_v()
13e0: 0a 7b 0a 20 20 69 6e 74 20 72 3d 39 39 3b 0a 20  .{.  int r=99;. 
13f0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 69 6e   fprintf(out,"in
1400: 74 20 66 28 76 6f 69 64 29 3a 22 29 3b 0a 20 20  t f(void):");.  
1410: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72  fflush(out);.  r
1420: 65 74 75 72 6e 20 72 3b 0a 7d 0a 69 6e 74 20 69  eturn r;.}.int i
1430: 5f 69 20 5f 50 28 28 61 29 2c 20 69 6e 74 20 61  _i _P((a), int a
1440: 29 0a 7b 0a 20 20 69 6e 74 20 72 3d 61 2b 31 3b  ).{.  int r=a+1;
1450: 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22  .  fprintf(out,"
1460: 69 6e 74 20 66 28 69 6e 74 29 3a 28 25 64 29 22  int f(int):(%d)"
1470: 2c 61 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75  ,a);.  fflush(ou
1480: 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a  t);.  return r;.
1490: 7d 0a 69 6e 74 20 69 5f 69 32 20 5f 50 28 28 61  }.int i_i2 _P((a
14a0: 2c 62 29 2c 20 69 6e 74 20 61 20 5f 20 69 6e 74  ,b), int a _ int
14b0: 20 62 29 0a 7b 0a 20 20 69 6e 74 20 72 3d 61 2b   b).{.  int r=a+
14c0: 62 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74  b;.  fprintf(out
14d0: 2c 22 69 6e 74 20 66 28 32 2a 69 6e 74 29 3a 28  ,"int f(2*int):(
14e0: 25 64 2c 25 64 29 22 2c 61 2c 62 29 3b 0a 20 20  %d,%d)",a,b);.  
14f0: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72  fflush(out);.  r
1500: 65 74 75 72 6e 20 72 3b 0a 7d 0a 69 6e 74 20 69  eturn r;.}.int i
1510: 5f 69 34 20 5f 50 28 28 61 2c 62 2c 63 2c 64 29  _i4 _P((a,b,c,d)
1520: 2c 20 69 6e 74 20 61 20 5f 20 69 6e 74 20 62 20  , int a _ int b 
1530: 5f 20 69 6e 74 20 63 20 5f 20 69 6e 74 20 64 29  _ int c _ int d)
1540: 0a 7b 0a 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63  .{.  int r=a+b+c
1550: 2b 64 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75  +d;.  fprintf(ou
1560: 74 2c 22 69 6e 74 20 66 28 34 2a 69 6e 74 29 3a  t,"int f(4*int):
1570: 28 25 64 2c 25 64 2c 25 64 2c 25 64 29 22 2c 61  (%d,%d,%d,%d)",a
1580: 2c 62 2c 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73  ,b,c,d);.  fflus
1590: 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e  h(out);.  return
15a0: 20 72 3b 0a 7d 0a 69 6e 74 20 69 5f 69 38 20 5f   r;.}.int i_i8 _
15b0: 50 28 28 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67  P((a,b,c,d,e,f,g
15c0: 2c 68 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20  ,h),.           
15d0: 20 69 6e 74 20 61 20 5f 20 69 6e 74 20 62 20 5f   int a _ int b _
15e0: 20 69 6e 74 20 63 20 5f 20 69 6e 74 20 64 20 5f   int c _ int d _
15f0: 20 69 6e 74 20 65 20 5f 20 69 6e 74 20 66 20 5f   int e _ int f _
1600: 20 69 6e 74 20 67 20 5f 20 69 6e 74 20 68 29 0a   int g _ int h).
1610: 7b 0a 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63 2b  {.  int r=a+b+c+
1620: 64 2b 65 2b 66 2b 67 2b 68 3b 0a 20 20 66 70 72  d+e+f+g+h;.  fpr
1630: 69 6e 74 66 28 6f 75 74 2c 22 69 6e 74 20 66 28  intf(out,"int f(
1640: 38 2a 69 6e 74 29 3a 28 25 64 2c 25 64 2c 25 64  8*int):(%d,%d,%d
1650: 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 29  ,%d,%d,%d,%d,%d)
1660: 22 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c  ",a,b,c,d,e,f,g,
1670: 68 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74  h);.  fflush(out
1680: 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d  );.  return r;.}
1690: 0a 69 6e 74 20 69 5f 69 31 36 20 5f 50 28 28 61  .int i_i16 _P((a
16a0: 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c 69  ,b,c,d,e,f,g,h,i
16b0: 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e 2c 6f 2c 70 29 2c  ,j,k,l,m,n,o,p),
16c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e  .             in
16d0: 74 20 61 20 5f 20 69 6e 74 20 62 20 5f 20 69 6e  t a _ int b _ in
16e0: 74 20 63 20 5f 20 69 6e 74 20 64 20 5f 20 69 6e  t c _ int d _ in
16f0: 74 20 65 20 5f 20 69 6e 74 20 66 20 5f 20 69 6e  t e _ int f _ in
1700: 74 20 67 20 5f 20 69 6e 74 20 68 0a 20 20 20 20  t g _ int h.    
1710: 20 20 20 20 20 20 20 20 20 5f 20 69 6e 74 20 69           _ int i
1720: 20 5f 20 69 6e 74 20 6a 20 5f 20 69 6e 74 20 6b   _ int j _ int k
1730: 20 5f 20 69 6e 74 20 6c 20 5f 20 69 6e 74 20 6d   _ int l _ int m
1740: 20 5f 20 69 6e 74 20 6e 20 5f 20 69 6e 74 20 6f   _ int n _ int o
1750: 20 5f 20 69 6e 74 20 70 29 0a 7b 0a 20 20 69 6e   _ int p).{.  in
1760: 74 20 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b 66 2b  t r=a+b+c+d+e+f+
1770: 67 2b 68 2b 69 2b 6a 2b 6b 2b 6c 2b 6d 2b 6e 2b  g+h+i+j+k+l+m+n+
1780: 6f 2b 70 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f  o+p;.  fprintf(o
1790: 75 74 2c 22 69 6e 74 20 66 28 31 36 2a 69 6e 74  ut,"int f(16*int
17a0: 29 3a 28 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25  ):(%d,%d,%d,%d,%
17b0: 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64  d,%d,%d,%d,%d,%d
17c0: 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c  ,%d,%d,%d,%d,%d,
17d0: 25 64 29 22 2c 0a 20 20 20 20 20 20 20 20 20 20  %d)",.          
17e0: 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c  a,b,c,d,e,f,g,h,
17f0: 69 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e 2c 6f 2c 70 29  i,j,k,l,m,n,o,p)
1800: 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b  ;.  fflush(out);
1810: 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a  .  return r;.}..
1820: 2f 2a 20 66 6c 6f 61 74 20 74 65 73 74 73 20 2a  /* float tests *
1830: 2f 0a 66 6c 6f 61 74 20 66 5f 66 20 5f 50 28 28  /.float f_f _P((
1840: 61 29 2c 20 66 6c 6f 61 74 20 61 29 0a 7b 0a 20  a), float a).{. 
1850: 20 66 6c 6f 61 74 20 72 3d 61 2b 31 2e 30 3b 0a   float r=a+1.0;.
1860: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 66    fprintf(out,"f
1870: 6c 6f 61 74 20 66 28 66 6c 6f 61 74 29 3a 28 25  loat f(float):(%
1880: 67 29 22 2c 61 29 3b 0a 20 20 66 66 6c 75 73 68  g)",a);.  fflush
1890: 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20  (out);.  return 
18a0: 72 3b 0a 7d 0a 66 6c 6f 61 74 20 66 5f 66 32 20  r;.}.float f_f2 
18b0: 5f 50 28 28 61 2c 62 29 2c 20 66 6c 6f 61 74 20  _P((a,b), float 
18c0: 61 20 5f 20 66 6c 6f 61 74 20 62 29 0a 7b 0a 20  a _ float b).{. 
18d0: 20 66 6c 6f 61 74 20 72 3d 61 2b 62 3b 0a 20 20   float r=a+b;.  
18e0: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 66 6c 6f  fprintf(out,"flo
18f0: 61 74 20 66 28 32 2a 66 6c 6f 61 74 29 3a 28 25  at f(2*float):(%
1900: 67 2c 25 67 29 22 2c 61 2c 62 29 3b 0a 20 20 66  g,%g)",a,b);.  f
1910: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65  flush(out);.  re
1920: 74 75 72 6e 20 72 3b 0a 7d 0a 66 6c 6f 61 74 20  turn r;.}.float 
1930: 66 5f 66 34 20 5f 50 28 28 61 2c 62 2c 63 2c 64  f_f4 _P((a,b,c,d
1940: 29 2c 20 66 6c 6f 61 74 20 61 20 5f 20 66 6c 6f  ), float a _ flo
1950: 61 74 20 62 20 5f 20 66 6c 6f 61 74 20 63 20 5f  at b _ float c _
1960: 20 66 6c 6f 61 74 20 64 29 0a 7b 0a 20 20 66 6c   float d).{.  fl
1970: 6f 61 74 20 72 3d 61 2b 62 2b 63 2b 64 3b 0a 20  oat r=a+b+c+d;. 
1980: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 66 6c   fprintf(out,"fl
1990: 6f 61 74 20 66 28 34 2a 66 6c 6f 61 74 29 3a 28  oat f(4*float):(
19a0: 25 67 2c 25 67 2c 25 67 2c 25 67 29 22 2c 61 2c  %g,%g,%g,%g)",a,
19b0: 62 2c 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73 68  b,c,d);.  fflush
19c0: 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20  (out);.  return 
19d0: 72 3b 0a 7d 0a 66 6c 6f 61 74 20 66 5f 66 38 20  r;.}.float f_f8 
19e0: 5f 50 28 28 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c  _P((a,b,c,d,e,f,
19f0: 67 2c 68 29 2c 20 66 6c 6f 61 74 20 61 20 5f 20  g,h), float a _ 
1a00: 66 6c 6f 61 74 20 62 20 5f 20 66 6c 6f 61 74 20  float b _ float 
1a10: 63 20 5f 20 66 6c 6f 61 74 20 64 20 5f 20 66 6c  c _ float d _ fl
1a20: 6f 61 74 20 65 20 5f 20 66 6c 6f 61 74 20 66 0a  oat e _ float f.
1a30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5f 20                _ 
1a40: 66 6c 6f 61 74 20 67 20 5f 20 66 6c 6f 61 74 20  float g _ float 
1a50: 68 29 0a 7b 0a 20 20 66 6c 6f 61 74 20 72 3d 61  h).{.  float r=a
1a60: 2b 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 3b 0a  +b+c+d+e+f+g+h;.
1a70: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 66    fprintf(out,"f
1a80: 6c 6f 61 74 20 66 28 38 2a 66 6c 6f 61 74 29 3a  loat f(8*float):
1a90: 28 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  (%g,%g,%g,%g,%g,
1aa0: 25 67 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63  %g,%g,%g)",a,b,c
1ab0: 2c 64 2c 65 2c 66 2c 67 2c 68 29 3b 0a 20 20 66  ,d,e,f,g,h);.  f
1ac0: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65  flush(out);.  re
1ad0: 74 75 72 6e 20 72 3b 0a 7d 0a 66 6c 6f 61 74 20  turn r;.}.float 
1ae0: 66 5f 66 31 36 20 5f 50 28 28 61 2c 62 2c 63 2c  f_f16 _P((a,b,c,
1af0: 64 2c 65 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c  d,e,f,g,h,i,j,k,
1b00: 6c 2c 6d 2c 6e 2c 6f 2c 70 29 2c 0a 20 20 20 20  l,m,n,o,p),.    
1b10: 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74             float
1b20: 20 61 20 5f 20 66 6c 6f 61 74 20 62 20 5f 20 66   a _ float b _ f
1b30: 6c 6f 61 74 20 63 20 5f 20 66 6c 6f 61 74 20 64  loat c _ float d
1b40: 20 5f 20 66 6c 6f 61 74 20 65 20 5f 20 66 6c 6f   _ float e _ flo
1b50: 61 74 20 66 20 5f 20 66 6c 6f 61 74 20 67 20 5f  at f _ float g _
1b60: 20 66 6c 6f 61 74 20 68 0a 20 20 20 20 20 20 20   float h.       
1b70: 20 20 20 20 20 20 20 20 5f 20 66 6c 6f 61 74 20          _ float 
1b80: 69 20 5f 20 66 6c 6f 61 74 20 6a 20 5f 20 66 6c  i _ float j _ fl
1b90: 6f 61 74 20 6b 20 5f 20 66 6c 6f 61 74 20 6c 20  oat k _ float l 
1ba0: 5f 20 66 6c 6f 61 74 20 6d 20 5f 20 66 6c 6f 61  _ float m _ floa
1bb0: 74 20 6e 20 5f 20 66 6c 6f 61 74 20 6f 20 5f 20  t n _ float o _ 
1bc0: 66 6c 6f 61 74 20 70 29 0a 7b 0a 20 20 66 6c 6f  float p).{.  flo
1bd0: 61 74 20 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b 66  at r=a+b+c+d+e+f
1be0: 2b 67 2b 68 2b 69 2b 6a 2b 6b 2b 6c 2b 6d 2b 6e  +g+h+i+j+k+l+m+n
1bf0: 2b 6f 2b 70 3b 0a 20 20 66 70 72 69 6e 74 66 28  +o+p;.  fprintf(
1c00: 6f 75 74 2c 22 66 6c 6f 61 74 20 66 28 31 36 2a  out,"float f(16*
1c10: 66 6c 6f 61 74 29 3a 28 25 67 2c 25 67 2c 25 67  float):(%g,%g,%g
1c20: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
1c30: 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25  %g,%g,%g,%g,%g,%
1c40: 67 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c  g,%g,%g)",a,b,c,
1c50: 64 2c 65 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c  d,e,f,g,h,i,j,k,
1c60: 6c 2c 6d 2c 6e 2c 6f 2c 70 29 3b 0a 20 20 66 66  l,m,n,o,p);.  ff
1c70: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74  lush(out);.  ret
1c80: 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2a 20 64 6f 75  urn r;.}../* dou
1c90: 62 6c 65 20 74 65 73 74 73 20 2a 2f 0a 64 6f 75  ble tests */.dou
1ca0: 62 6c 65 20 64 5f 64 20 5f 50 28 28 61 29 2c 20  ble d_d _P((a), 
1cb0: 64 6f 75 62 6c 65 20 61 29 0a 7b 0a 20 20 64 6f  double a).{.  do
1cc0: 75 62 6c 65 20 72 3d 61 2b 31 2e 30 3b 0a 20 20  uble r=a+1.0;.  
1cd0: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 64 6f 75  fprintf(out,"dou
1ce0: 62 6c 65 20 66 28 64 6f 75 62 6c 65 29 3a 28 25  ble f(double):(%
1cf0: 67 29 22 2c 61 29 3b 0a 20 20 66 66 6c 75 73 68  g)",a);.  fflush
1d00: 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20  (out);.  return 
1d10: 72 3b 0a 7d 0a 64 6f 75 62 6c 65 20 64 5f 64 32  r;.}.double d_d2
1d20: 20 5f 50 28 28 61 2c 62 29 2c 20 64 6f 75 62 6c   _P((a,b), doubl
1d30: 65 20 61 20 5f 20 64 6f 75 62 6c 65 20 62 29 0a  e a _ double b).
1d40: 7b 0a 20 20 64 6f 75 62 6c 65 20 72 3d 61 2b 62  {.  double r=a+b
1d50: 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c  ;.  fprintf(out,
1d60: 22 64 6f 75 62 6c 65 20 66 28 32 2a 64 6f 75 62  "double f(2*doub
1d70: 6c 65 29 3a 28 25 67 2c 25 67 29 22 2c 61 2c 62  le):(%g,%g)",a,b
1d80: 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29  );.  fflush(out)
1d90: 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d 0a  ;.  return r;.}.
1da0: 64 6f 75 62 6c 65 20 64 5f 64 34 20 5f 50 28 28  double d_d4 _P((
1db0: 61 2c 62 2c 63 2c 64 29 2c 20 64 6f 75 62 6c 65  a,b,c,d), double
1dc0: 20 61 20 5f 20 64 6f 75 62 6c 65 20 62 20 5f 20   a _ double b _ 
1dd0: 64 6f 75 62 6c 65 20 63 20 5f 20 64 6f 75 62 6c  double c _ doubl
1de0: 65 20 64 29 0a 7b 0a 20 20 64 6f 75 62 6c 65 20  e d).{.  double 
1df0: 72 3d 61 2b 62 2b 63 2b 64 3b 0a 20 20 66 70 72  r=a+b+c+d;.  fpr
1e00: 69 6e 74 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65  intf(out,"double
1e10: 20 66 28 34 2a 64 6f 75 62 6c 65 29 3a 28 25 67   f(4*double):(%g
1e20: 2c 25 67 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c  ,%g,%g,%g)",a,b,
1e30: 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f  c,d);.  fflush(o
1e40: 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b  ut);.  return r;
1e50: 0a 7d 0a 64 6f 75 62 6c 65 20 64 5f 64 38 20 5f  .}.double d_d8 _
1e60: 50 28 28 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67  P((a,b,c,d,e,f,g
1e70: 2c 68 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20  ,h),.           
1e80: 20 20 20 20 64 6f 75 62 6c 65 20 61 20 5f 20 64      double a _ d
1e90: 6f 75 62 6c 65 20 62 20 5f 20 64 6f 75 62 6c 65  ouble b _ double
1ea0: 20 63 20 5f 20 64 6f 75 62 6c 65 20 64 20 5f 20   c _ double d _ 
1eb0: 64 6f 75 62 6c 65 20 65 20 5f 20 64 6f 75 62 6c  double e _ doubl
1ec0: 65 20 66 0a 20 20 20 20 20 20 20 20 20 20 20 20  e f.            
1ed0: 20 20 20 5f 20 64 6f 75 62 6c 65 20 67 20 5f 20     _ double g _ 
1ee0: 64 6f 75 62 6c 65 20 68 29 0a 7b 0a 20 20 64 6f  double h).{.  do
1ef0: 75 62 6c 65 20 72 3d 61 2b 62 2b 63 2b 64 2b 65  uble r=a+b+c+d+e
1f00: 2b 66 2b 67 2b 68 3b 0a 20 20 66 70 72 69 6e 74  +f+g+h;.  fprint
1f10: 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65 20 66 28  f(out,"double f(
1f20: 38 2a 64 6f 75 62 6c 65 29 3a 28 25 67 2c 25 67  8*double):(%g,%g
1f30: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
1f40: 25 67 29 22 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66  %g)",a,b,c,d,e,f
1f50: 2c 67 2c 68 29 3b 0a 20 20 66 66 6c 75 73 68 28  ,g,h);.  fflush(
1f60: 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72  out);.  return r
1f70: 3b 0a 7d 0a 64 6f 75 62 6c 65 20 64 5f 64 31 36  ;.}.double d_d16
1f80: 20 5f 50 28 28 61 2c 62 2c 63 2c 64 2c 65 2c 66   _P((a,b,c,d,e,f
1f90: 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e  ,g,h,i,j,k,l,m,n
1fa0: 2c 6f 2c 70 29 2c 0a 20 20 20 20 20 20 20 20 20  ,o,p),.         
1fb0: 20 20 20 20 20 20 20 64 6f 75 62 6c 65 20 61 20         double a 
1fc0: 5f 20 64 6f 75 62 6c 65 20 62 20 5f 20 64 6f 75  _ double b _ dou
1fd0: 62 6c 65 20 63 20 5f 20 64 6f 75 62 6c 65 20 64  ble c _ double d
1fe0: 20 5f 20 64 6f 75 62 6c 65 20 65 20 5f 20 64 6f   _ double e _ do
1ff0: 75 62 6c 65 20 66 0a 20 20 20 20 20 20 20 20 20  uble f.         
2000: 20 20 20 20 20 20 20 5f 20 64 6f 75 62 6c 65 20         _ double 
2010: 67 20 5f 20 64 6f 75 62 6c 65 20 68 20 5f 20 64  g _ double h _ d
2020: 6f 75 62 6c 65 20 69 20 5f 20 64 6f 75 62 6c 65  ouble i _ double
2030: 20 6a 20 5f 20 64 6f 75 62 6c 65 20 6b 20 5f 20   j _ double k _ 
2040: 64 6f 75 62 6c 65 20 6c 0a 20 20 20 20 20 20 20  double l.       
2050: 20 20 20 20 20 20 20 20 20 5f 20 64 6f 75 62 6c           _ doubl
2060: 65 20 6d 20 5f 20 64 6f 75 62 6c 65 20 6e 20 5f  e m _ double n _
2070: 20 64 6f 75 62 6c 65 20 6f 20 5f 20 64 6f 75 62   double o _ doub
2080: 6c 65 20 70 29 0a 7b 0a 20 20 64 6f 75 62 6c 65  le p).{.  double
2090: 20 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b 66 2b 67   r=a+b+c+d+e+f+g
20a0: 2b 68 2b 69 2b 6a 2b 6b 2b 6c 2b 6d 2b 6e 2b 6f  +h+i+j+k+l+m+n+o
20b0: 2b 70 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75  +p;.  fprintf(ou
20c0: 74 2c 22 64 6f 75 62 6c 65 20 66 28 31 36 2a 64  t,"double f(16*d
20d0: 6f 75 62 6c 65 29 3a 28 25 67 2c 25 67 2c 25 67  ouble):(%g,%g,%g
20e0: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
20f0: 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25  %g,%g,%g,%g,%g,%
2100: 67 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c  g,%g,%g)",a,b,c,
2110: 64 2c 65 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c  d,e,f,g,h,i,j,k,
2120: 6c 2c 6d 2c 6e 2c 6f 2c 70 29 3b 0a 20 20 66 66  l,m,n,o,p);.  ff
2130: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74  lush(out);.  ret
2140: 75 72 6e 20 72 3b 0a 7d 0a 0a 2f 2a 20 70 6f 69  urn r;.}../* poi
2150: 6e 74 65 72 20 74 65 73 74 73 20 2a 2f 0a 76 6f  nter tests */.vo
2160: 69 64 2a 20 76 70 5f 76 70 64 70 63 70 73 70 20  id* vp_vpdpcpsp 
2170: 5f 50 28 28 61 2c 62 2c 63 2c 64 29 2c 20 76 6f  _P((a,b,c,d), vo
2180: 69 64 2a 20 61 20 5f 20 64 6f 75 62 6c 65 2a 20  id* a _ double* 
2190: 62 20 5f 20 63 68 61 72 2a 20 63 20 5f 20 49 6e  b _ char* c _ In
21a0: 74 2a 20 64 29 0a 7b 0a 20 20 76 6f 69 64 2a 20  t* d).{.  void* 
21b0: 72 65 74 20 3d 20 28 63 68 61 72 2a 29 62 20 2b  ret = (char*)b +
21c0: 20 31 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f 75   1;.  fprintf(ou
21d0: 74 2c 22 76 6f 69 64 2a 20 66 28 76 6f 69 64 2a  t,"void* f(void*
21e0: 2c 64 6f 75 62 6c 65 2a 2c 63 68 61 72 2a 2c 49  ,double*,char*,I
21f0: 6e 74 2a 29 3a 28 30 78 25 6c 78 2c 30 78 25 6c  nt*):(0x%lx,0x%l
2200: 78 2c 30 78 25 6c 78 2c 30 78 25 6c 78 29 22 2c  x,0x%lx,0x%lx)",
2210: 28 6c 6f 6e 67 29 61 2c 28 6c 6f 6e 67 29 62 2c  (long)a,(long)b,
2220: 28 6c 6f 6e 67 29 63 2c 28 6c 6f 6e 67 29 64 29  (long)c,(long)d)
2230: 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b  ;.  fflush(out);
2240: 0a 20 20 72 65 74 75 72 6e 20 72 65 74 3b 0a 7d  .  return ret;.}
2250: 0a 0a 2f 2a 20 6d 69 78 65 64 20 6e 75 6d 62 65  ../* mixed numbe
2260: 72 20 74 65 73 74 73 20 2a 2f 0a 75 63 68 61 72  r tests */.uchar
2270: 20 75 63 5f 75 63 73 69 6c 20 5f 50 28 28 61 2c   uc_ucsil _P((a,
2280: 62 2c 63 2c 64 29 2c 20 75 63 68 61 72 20 61 20  b,c,d), uchar a 
2290: 5f 20 75 73 68 6f 72 74 20 62 20 5f 20 75 69 6e  _ ushort b _ uin
22a0: 74 20 63 20 5f 20 75 6c 6f 6e 67 20 64 29 0a 7b  t c _ ulong d).{
22b0: 0a 20 20 75 63 68 61 72 20 72 20 3d 20 2d 31 3b  .  uchar r = -1;
22c0: 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22  .  fprintf(out,"
22d0: 75 63 68 61 72 20 66 28 75 63 68 61 72 2c 75 73  uchar f(uchar,us
22e0: 68 6f 72 74 2c 75 69 6e 74 2c 75 6c 6f 6e 67 29  hort,uint,ulong)
22f0: 3a 28 25 75 2c 25 75 2c 25 75 2c 25 6c 75 29 22  :(%u,%u,%u,%lu)"
2300: 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 66 66 6c  ,a,b,c,d);.  ffl
2310: 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75  ush(out);.  retu
2320: 72 6e 20 72 3b 0a 7d 0a 64 6f 75 62 6c 65 20 64  rn r;.}.double d
2330: 5f 69 69 64 64 20 5f 50 28 28 61 2c 62 2c 63 2c  _iidd _P((a,b,c,
2340: 64 29 2c 20 69 6e 74 20 61 20 5f 20 69 6e 74 20  d), int a _ int 
2350: 62 20 5f 20 64 6f 75 62 6c 65 20 63 20 5f 20 64  b _ double c _ d
2360: 6f 75 62 6c 65 20 64 29 0a 7b 0a 20 20 64 6f 75  ouble d).{.  dou
2370: 62 6c 65 20 72 20 3d 20 61 2b 62 2b 63 2b 64 3b  ble r = a+b+c+d;
2380: 0a 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22  .  fprintf(out,"
2390: 64 6f 75 62 6c 65 20 66 28 69 6e 74 2c 69 6e 74  double f(int,int
23a0: 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 29 3a  ,double,double):
23b0: 28 25 64 2c 25 64 2c 25 67 2c 25 67 29 22 2c 61  (%d,%d,%g,%g)",a
23c0: 2c 62 2c 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73  ,b,c,d);.  fflus
23d0: 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e  h(out);.  return
23e0: 20 72 3b 0a 7d 0a 64 6f 75 62 6c 65 20 64 5f 69   r;.}.double d_i
23f0: 64 69 64 20 5f 50 28 28 61 2c 62 2c 63 2c 64 29  did _P((a,b,c,d)
2400: 2c 20 69 6e 74 20 61 20 5f 20 64 6f 75 62 6c 65  , int a _ double
2410: 20 62 20 5f 20 69 6e 74 20 63 20 5f 20 64 6f 75   b _ int c _ dou
2420: 62 6c 65 20 64 29 0a 7b 0a 20 20 64 6f 75 62 6c  ble d).{.  doubl
2430: 65 20 72 20 3d 20 61 2b 62 2b 63 2b 64 3b 0a 20  e r = a+b+c+d;. 
2440: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 64 6f   fprintf(out,"do
2450: 75 62 6c 65 20 66 28 69 6e 74 2c 64 6f 75 62 6c  uble f(int,doubl
2460: 65 2c 69 6e 74 2c 64 6f 75 62 6c 65 29 3a 28 25  e,int,double):(%
2470: 64 2c 25 67 2c 25 64 2c 25 67 29 22 2c 61 2c 62  d,%g,%d,%g)",a,b
2480: 2c 63 2c 64 29 3b 0a 20 20 66 66 6c 75 73 68 28  ,c,d);.  fflush(
2490: 6f 75 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72  out);.  return r
24a0: 3b 0a 7d 0a 75 73 68 6f 72 74 20 75 73 5f 63 64  ;.}.ushort us_cd
24b0: 63 64 20 5f 50 28 28 61 2c 62 2c 63 2c 64 29 2c  cd _P((a,b,c,d),
24c0: 20 63 68 61 72 20 61 20 5f 20 64 6f 75 62 6c 65   char a _ double
24d0: 20 62 20 5f 20 63 68 61 72 20 63 20 5f 20 64 6f   b _ char c _ do
24e0: 75 62 6c 65 20 64 29 0a 7b 0a 20 20 75 73 68 6f  uble d).{.  usho
24f0: 72 74 20 72 20 3d 20 28 75 73 68 6f 72 74 29 28  rt r = (ushort)(
2500: 61 20 2b 20 62 20 2b 20 63 20 2b 20 64 29 3b 0a  a + b + c + d);.
2510: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 75    fprintf(out,"u
2520: 73 68 6f 72 74 20 66 28 63 68 61 72 2c 64 6f 75  short f(char,dou
2530: 62 6c 65 2c 63 68 61 72 2c 64 6f 75 62 6c 65 29  ble,char,double)
2540: 3a 28 27 25 63 27 2c 25 67 2c 27 25 63 27 2c 25  :('%c',%g,'%c',%
2550: 67 29 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20  g)",a,b,c,d);.  
2560: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72  fflush(out);.  r
2570: 65 74 75 72 6e 20 72 3b 0a 7d 0a 0a 23 69 66 64  eturn r;.}..#ifd
2580: 65 66 20 48 41 56 45 5f 4c 4f 4e 47 4c 4f 4e 47  ef HAVE_LONGLONG
2590: 0a 6c 6f 6e 67 20 6c 6f 6e 67 20 6c 6c 5f 66 6c  .long long ll_fl
25a0: 6c 69 20 5f 50 28 28 61 2c 62 2c 63 29 2c 20 66  li _P((a,b,c), f
25b0: 6c 6f 61 74 20 61 20 5f 20 6c 6f 6e 67 20 6c 6f  loat a _ long lo
25c0: 6e 67 20 62 20 5f 20 69 6e 74 20 63 29 0a 7b 0a  ng b _ int c).{.
25d0: 20 20 6c 6f 6e 67 20 6c 6f 6e 67 20 72 20 3d 20    long long r = 
25e0: 28 6c 6f 6e 67 20 6c 6f 6e 67 29 28 69 6e 74 29  (long long)(int)
25f0: 61 20 2b 20 62 20 2b 20 28 6c 6f 6e 67 20 6c 6f  a + b + (long lo
2600: 6e 67 29 63 3b 0a 20 20 66 70 72 69 6e 74 66 28  ng)c;.  fprintf(
2610: 6f 75 74 2c 22 6c 6f 6e 67 20 6c 6f 6e 67 20 66  out,"long long f
2620: 28 66 6c 6f 61 74 2c 6c 6f 6e 67 20 6c 6f 6e 67  (float,long long
2630: 2c 69 6e 74 29 3a 28 25 67 2c 30 78 25 6c 78 25  ,int):(%g,0x%lx%
2640: 30 38 6c 78 2c 30 78 25 6c 78 29 22 2c 61 2c 28  08lx,0x%lx)",a,(
2650: 6c 6f 6e 67 29 28 62 3e 3e 33 32 29 2c 28 6c 6f  long)(b>>32),(lo
2660: 6e 67 29 28 62 26 30 78 66 66 66 66 66 66 66 66  ng)(b&0xffffffff
2670: 29 2c 28 6c 6f 6e 67 29 63 29 3b 0a 20 20 66 66  ),(long)c);.  ff
2680: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74  lush(out);.  ret
2690: 75 72 6e 20 72 3b 0a 7d 0a 23 65 6e 64 69 66 0a  urn r;.}.#endif.
26a0: 0a 2f 2a 20 73 74 72 75 63 74 75 72 65 20 74 65  ./* structure te
26b0: 73 74 73 20 2a 2f 0a 49 6e 74 20 49 5f 49 49 49  sts */.Int I_III
26c0: 20 5f 50 28 28 61 2c 62 2c 63 29 2c 20 49 6e 74   _P((a,b,c), Int
26d0: 20 61 20 5f 20 49 6e 74 20 62 20 5f 20 49 6e 74   a _ Int b _ Int
26e0: 20 63 29 0a 7b 0a 20 20 49 6e 74 20 72 3b 0a 20   c).{.  Int r;. 
26f0: 20 72 2e 78 20 3d 20 61 2e 78 20 2b 20 62 2e 78   r.x = a.x + b.x
2700: 20 2b 20 63 2e 78 3b 0a 20 20 66 70 72 69 6e 74   + c.x;.  fprint
2710: 66 28 6f 75 74 2c 22 49 6e 74 20 66 28 49 6e 74  f(out,"Int f(Int
2720: 2c 49 6e 74 2c 49 6e 74 29 3a 28 7b 25 64 7d 2c  ,Int,Int):({%d},
2730: 7b 25 64 7d 2c 7b 25 64 7d 29 22 2c 61 2e 78 2c  {%d},{%d})",a.x,
2740: 62 2e 78 2c 63 2e 78 29 3b 0a 20 20 66 66 6c 75  b.x,c.x);.  fflu
2750: 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72  sh(out);.  retur
2760: 6e 20 72 3b 0a 7d 0a 43 68 61 72 20 43 5f 43 64  n r;.}.Char C_Cd
2770: 43 20 5f 50 28 28 61 2c 62 2c 63 29 2c 20 43 68  C _P((a,b,c), Ch
2780: 61 72 20 61 20 5f 20 64 6f 75 62 6c 65 20 62 20  ar a _ double b 
2790: 5f 20 43 68 61 72 20 63 29 0a 7b 0a 20 20 43 68  _ Char c).{.  Ch
27a0: 61 72 20 72 3b 0a 20 20 72 2e 78 20 3d 20 28 61  ar r;.  r.x = (a
27b0: 2e 78 20 2b 20 63 2e 78 29 2f 32 3b 0a 20 20 66  .x + c.x)/2;.  f
27c0: 70 72 69 6e 74 66 28 6f 75 74 2c 22 43 68 61 72  printf(out,"Char
27d0: 20 66 28 43 68 61 72 2c 64 6f 75 62 6c 65 2c 43   f(Char,double,C
27e0: 68 61 72 29 3a 28 7b 27 25 63 27 7d 2c 25 67 2c  har):({'%c'},%g,
27f0: 7b 27 25 63 27 7d 29 22 2c 61 2e 78 2c 62 2c 63  {'%c'})",a.x,b,c
2800: 2e 78 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75  .x);.  fflush(ou
2810: 74 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a  t);.  return r;.
2820: 7d 0a 46 6c 6f 61 74 20 46 5f 46 66 64 20 5f 50  }.Float F_Ffd _P
2830: 28 28 61 2c 62 2c 63 29 2c 20 46 6c 6f 61 74 20  ((a,b,c), Float 
2840: 61 20 5f 20 66 6c 6f 61 74 20 62 20 5f 20 64 6f  a _ float b _ do
2850: 75 62 6c 65 20 63 29 0a 7b 0a 20 20 46 6c 6f 61  uble c).{.  Floa
2860: 74 20 72 3b 0a 20 20 72 2e 78 20 3d 20 61 2e 78  t r;.  r.x = a.x
2870: 20 2b 20 62 20 2b 20 63 3b 0a 20 20 66 70 72 69   + b + c;.  fpri
2880: 6e 74 66 28 6f 75 74 2c 22 46 6c 6f 61 74 20 66  ntf(out,"Float f
2890: 28 46 6c 6f 61 74 2c 66 6c 6f 61 74 2c 64 6f 75  (Float,float,dou
28a0: 62 6c 65 29 3a 28 7b 25 67 7d 2c 25 67 2c 25 67  ble):({%g},%g,%g
28b0: 29 22 2c 61 2e 78 2c 62 2c 63 29 3b 0a 20 20 66  )",a.x,b,c);.  f
28c0: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65  flush(out);.  re
28d0: 74 75 72 6e 20 72 3b 0a 7d 0a 44 6f 75 62 6c 65  turn r;.}.Double
28e0: 20 44 5f 66 44 64 20 5f 50 28 28 61 2c 62 2c 63   D_fDd _P((a,b,c
28f0: 29 2c 20 66 6c 6f 61 74 20 61 20 5f 20 44 6f 75  ), float a _ Dou
2900: 62 6c 65 20 62 20 5f 20 64 6f 75 62 6c 65 20 63  ble b _ double c
2910: 29 0a 7b 0a 20 20 44 6f 75 62 6c 65 20 72 3b 0a  ).{.  Double r;.
2920: 20 20 72 2e 78 20 3d 20 61 20 2b 20 62 2e 78 20    r.x = a + b.x 
2930: 2b 20 63 3b 0a 20 20 66 70 72 69 6e 74 66 28 6f  + c;.  fprintf(o
2940: 75 74 2c 22 44 6f 75 62 6c 65 20 66 28 66 6c 6f  ut,"Double f(flo
2950: 61 74 2c 44 6f 75 62 6c 65 2c 64 6f 75 62 6c 65  at,Double,double
2960: 29 3a 28 25 67 2c 7b 25 67 7d 2c 25 67 29 22 2c  ):(%g,{%g},%g)",
2970: 61 2c 62 2e 78 2c 63 29 3b 0a 20 20 66 66 6c 75  a,b.x,c);.  fflu
2980: 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72  sh(out);.  retur
2990: 6e 20 72 3b 0a 7d 0a 4a 20 4a 5f 4a 69 4a 20 5f  n r;.}.J J_JiJ _
29a0: 50 28 28 61 2c 62 2c 63 29 2c 20 4a 20 61 20 5f  P((a,b,c), J a _
29b0: 20 69 6e 74 20 62 20 5f 20 4a 20 63 29 0a 7b 0a   int b _ J c).{.
29c0: 20 20 4a 20 72 3b 0a 20 20 72 2e 6c 31 20 3d 20    J r;.  r.l1 = 
29d0: 61 2e 6c 31 2b 63 2e 6c 31 3b 20 72 2e 6c 32 20  a.l1+c.l1; r.l2 
29e0: 3d 20 61 2e 6c 32 2b 62 2b 63 2e 6c 32 3b 0a 20  = a.l2+b+c.l2;. 
29f0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 4a 20   fprintf(out,"J 
2a00: 66 28 4a 2c 69 6e 74 2c 4a 29 3a 28 7b 25 6c 64  f(J,int,J):({%ld
2a10: 2c 25 6c 64 7d 2c 25 64 2c 7b 25 6c 64 2c 25 6c  ,%ld},%d,{%ld,%l
2a20: 64 7d 29 22 2c 61 2e 6c 31 2c 61 2e 6c 32 2c 62  d})",a.l1,a.l2,b
2a30: 2c 63 2e 6c 31 2c 63 2e 6c 32 29 3b 0a 20 20 66  ,c.l1,c.l2);.  f
2a40: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 72 65  flush(out);.  re
2a50: 74 75 72 6e 20 72 3b 0a 7d 0a 54 20 54 5f 54 63  turn r;.}.T T_Tc
2a60: 54 20 5f 50 28 28 61 2c 62 2c 63 29 2c 20 54 20  T _P((a,b,c), T 
2a70: 61 20 5f 20 63 68 61 72 20 62 20 5f 20 54 20 63  a _ char b _ T c
2a80: 29 0a 7b 0a 20 20 54 20 72 3b 0a 20 20 72 2e 63  ).{.  T r;.  r.c
2a90: 5b 30 5d 3d 27 62 27 3b 20 72 2e 63 5b 31 5d 3d  [0]='b'; r.c[1]=
2aa0: 63 2e 63 5b 31 5d 3b 20 72 2e 63 5b 32 5d 3d 63  c.c[1]; r.c[2]=c
2ab0: 2e 63 5b 32 5d 3b 0a 20 20 66 70 72 69 6e 74 66  .c[2];.  fprintf
2ac0: 28 6f 75 74 2c 22 54 20 66 28 54 2c 63 68 61 72  (out,"T f(T,char
2ad0: 2c 54 29 3a 28 7b 5c 22 25 63 25 63 25 63 5c 22  ,T):({\"%c%c%c\"
2ae0: 7d 2c 27 25 63 27 2c 7b 5c 22 25 63 25 63 25 63  },'%c',{\"%c%c%c
2af0: 5c 22 7d 29 22 2c 61 2e 63 5b 30 5d 2c 61 2e 63  \"})",a.c[0],a.c
2b00: 5b 31 5d 2c 61 2e 63 5b 32 5d 2c 62 2c 63 2e 63  [1],a.c[2],b,c.c
2b10: 5b 30 5d 2c 63 2e 63 5b 31 5d 2c 63 2e 63 5b 32  [0],c.c[1],c.c[2
2b20: 5d 29 3b 0a 20 20 66 66 6c 75 73 68 28 6f 75 74  ]);.  fflush(out
2b30: 29 3b 0a 20 20 72 65 74 75 72 6e 20 72 3b 0a 7d  );.  return r;.}
2b40: 0a 58 20 58 5f 42 63 64 42 20 5f 50 28 28 61 2c  .X X_BcdB _P((a,
2b50: 62 2c 63 2c 64 29 2c 20 42 20 61 20 5f 20 63 68  b,c,d), B a _ ch
2b60: 61 72 20 62 20 5f 20 64 6f 75 62 6c 65 20 63 20  ar b _ double c 
2b70: 5f 20 42 20 64 29 0a 7b 0a 20 20 73 74 61 74 69  _ B d).{.  stati
2b80: 63 20 58 20 78 72 3d 7b 22 72 65 74 75 72 6e 20  c X xr={"return 
2b90: 76 61 6c 22 2c 27 52 27 7d 3b 0a 20 20 58 20 72  val",'R'};.  X r
2ba0: 3b 0a 20 20 72 20 3d 20 78 72 3b 0a 20 20 72 2e  ;.  r = xr;.  r.
2bb0: 63 31 20 3d 20 62 3b 0a 20 20 66 70 72 69 6e 74  c1 = b;.  fprint
2bc0: 66 28 6f 75 74 2c 22 58 20 66 28 42 2c 63 68 61  f(out,"X f(B,cha
2bd0: 72 2c 64 6f 75 62 6c 65 2c 42 29 3a 28 7b 25 67  r,double,B):({%g
2be0: 2c 7b 25 64 2c 25 64 2c 25 64 7d 7d 2c 27 25 63  ,{%d,%d,%d}},'%c
2bf0: 27 2c 25 67 2c 7b 25 67 2c 7b 25 64 2c 25 64 2c  ',%g,{%g,{%d,%d,
2c00: 25 64 7d 7d 29 22 2c 0a 20 20 20 20 20 20 20 20  %d}})",.        
2c10: 20 20 61 2e 64 2c 61 2e 69 5b 30 5d 2c 61 2e 69    a.d,a.i[0],a.i
2c20: 5b 31 5d 2c 61 2e 69 5b 32 5d 2c 62 2c 63 2c 64  [1],a.i[2],b,c,d
2c30: 2e 64 2c 64 2e 69 5b 30 5d 2c 64 2e 69 5b 31 5d  .d,d.i[0],d.i[1]
2c40: 2c 64 2e 69 5b 32 5d 29 3b 0a 20 20 66 66 6c 75  ,d.i[2]);.  fflu
2c50: 73 68 28 6f 75 74 29 3b 0a 20 20 72 65 74 75 72  sh(out);.  retur
2c60: 6e 20 72 3b 0a 7d 0a 0a 0a 76 6f 69 64 2a 20 63  n r;.}...void* c
2c70: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 3b  urrent_function;
2c80: 0a 0a 2f 2a 20 54 68 69 73 20 66 75 6e 63 74 69  ../* This functi
2c90: 6f 6e 20 73 69 6d 75 6c 61 74 65 73 20 74 68 65  on simulates the
2ca0: 20 62 65 68 61 76 69 6f 75 72 20 6f 66 20 63 75   behaviour of cu
2cb0: 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 2e 20  rrent_function. 
2cc0: 2a 2f 0a 76 6f 69 64 20 73 69 6d 75 6c 61 74 6f  */.void simulato
2cd0: 72 20 5f 50 28 28 61 6c 69 73 74 29 2c 20 76 61  r _P((alist), va
2ce0: 5f 61 6c 69 73 74 20 61 6c 69 73 74 29 0a 7b 0a  _alist alist).{.
2cf0: 20 20 2f 2a 20 76 6f 69 64 20 74 65 73 74 73 20    /* void tests 
2d00: 2a 2f 0a 20 20 69 66 20 28 63 75 72 72 65 6e 74  */.  if (current
2d10: 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f  _function == (vo
2d20: 69 64 2a 29 26 76 5f 76 29 0a 20 20 20 20 7b 0a  id*)&v_v).    {.
2d30: 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f 76        va_start_v
2d40: 6f 69 64 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  oid(alist);.    
2d50: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 76    fprintf(out,"v
2d60: 6f 69 64 20 66 28 76 6f 69 64 29 3a 5c 6e 22 29  oid f(void):\n")
2d70: 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f  ;.      fflush(o
2d80: 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65  ut);.      va_re
2d90: 74 75 72 6e 5f 76 6f 69 64 28 61 6c 69 73 74 29  turn_void(alist)
2da0: 3b 0a 20 20 20 20 7d 0a 0a 20 20 2f 2a 20 69 6e  ;.    }..  /* in
2db0: 74 20 74 65 73 74 73 20 2a 2f 0a 20 20 65 6c 73  t tests */.  els
2dc0: 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75  e if (current_fu
2dd0: 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a  nction == (void*
2de0: 29 26 69 5f 76 29 0a 20 20 20 20 7b 0a 20 20 20  )&i_v).    {.   
2df0: 20 20 20 76 61 5f 73 74 61 72 74 5f 69 6e 74 28     va_start_int(
2e00: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 69 6e  alist);.     {in
2e10: 74 20 72 3d 39 39 3b 0a 20 20 20 20 20 20 66 70  t r=99;.      fp
2e20: 72 69 6e 74 66 28 6f 75 74 2c 22 69 6e 74 20 66  rintf(out,"int f
2e30: 28 76 6f 69 64 29 3a 22 29 3b 0a 20 20 20 20 20  (void):");.     
2e40: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
2e50: 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 69 6e      va_return_in
2e60: 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20 20  t(alist, r);.   
2e70: 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20 28 63   }}.  else if (c
2e80: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
2e90: 3d 3d 20 28 76 6f 69 64 2a 29 26 69 5f 69 29 0a  == (void*)&i_i).
2ea0: 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61 5f 73      {.      va_s
2eb0: 74 61 72 74 5f 69 6e 74 28 61 6c 69 73 74 29 3b  tart_int(alist);
2ec0: 0a 20 20 20 20 20 7b 69 6e 74 20 61 20 3d 20 76  .     {int a = v
2ed0: 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29  a_arg_int(alist)
2ee0: 3b 0a 20 20 20 20 20 20 69 6e 74 20 72 3d 61 2b  ;.      int r=a+
2ef0: 31 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66  1;.      fprintf
2f00: 28 6f 75 74 2c 22 69 6e 74 20 66 28 69 6e 74 29  (out,"int f(int)
2f10: 3a 28 25 64 29 22 2c 61 29 3b 0a 20 20 20 20 20  :(%d)",a);.     
2f20: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
2f30: 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 69 6e      va_return_in
2f40: 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20 20  t(alist, r);.   
2f50: 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20 28 63   }}.  else if (c
2f60: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
2f70: 3d 3d 20 28 76 6f 69 64 2a 29 26 69 5f 69 32 29  == (void*)&i_i2)
2f80: 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61 5f  .    {.      va_
2f90: 73 74 61 72 74 5f 69 6e 74 28 61 6c 69 73 74 29  start_int(alist)
2fa0: 3b 0a 20 20 20 20 20 7b 69 6e 74 20 61 20 3d 20  ;.     {int a = 
2fb0: 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74  va_arg_int(alist
2fc0: 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 62 20 3d  );.      int b =
2fd0: 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73   va_arg_int(alis
2fe0: 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 72 3d  t);.      int r=
2ff0: 61 2b 62 3b 0a 20 20 20 20 20 20 66 70 72 69 6e  a+b;.      fprin
3000: 74 66 28 6f 75 74 2c 22 69 6e 74 20 66 28 32 2a  tf(out,"int f(2*
3010: 69 6e 74 29 3a 28 25 64 2c 25 64 29 22 2c 61 2c  int):(%d,%d)",a,
3020: 62 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68  b);.      fflush
3030: 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f  (out);.      va_
3040: 72 65 74 75 72 6e 5f 69 6e 74 28 61 6c 69 73 74  return_int(alist
3050: 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20 65  , r);.    }}.  e
3060: 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f  lse if (current_
3070: 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69  function == (voi
3080: 64 2a 29 26 69 5f 69 34 29 0a 20 20 20 20 7b 0a  d*)&i_i4).    {.
3090: 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f 69        va_start_i
30a0: 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  nt(alist);.     
30b0: 7b 69 6e 74 20 61 20 3d 20 76 61 5f 61 72 67 5f  {int a = va_arg_
30c0: 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  int(alist);.    
30d0: 20 20 69 6e 74 20 62 20 3d 20 76 61 5f 61 72 67    int b = va_arg
30e0: 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  _int(alist);.   
30f0: 20 20 20 69 6e 74 20 63 20 3d 20 76 61 5f 61 72     int c = va_ar
3100: 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20  g_int(alist);.  
3110: 20 20 20 20 69 6e 74 20 64 20 3d 20 76 61 5f 61      int d = va_a
3120: 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20  rg_int(alist);. 
3130: 20 20 20 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63       int r=a+b+c
3140: 2b 64 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74  +d;.      fprint
3150: 66 28 6f 75 74 2c 22 69 6e 74 20 66 28 34 2a 69  f(out,"int f(4*i
3160: 6e 74 29 3a 28 25 64 2c 25 64 2c 25 64 2c 25 64  nt):(%d,%d,%d,%d
3170: 29 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 20  )",a,b,c,d);.   
3180: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
3190: 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f        va_return_
31a0: 69 6e 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20  int(alist, r);. 
31b0: 20 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20     }}.  else if 
31c0: 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f  (current_functio
31d0: 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 69 5f 69  n == (void*)&i_i
31e0: 38 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76  8).    {.      v
31f0: 61 5f 73 74 61 72 74 5f 69 6e 74 28 61 6c 69 73  a_start_int(alis
3200: 74 29 3b 0a 20 20 20 20 20 7b 69 6e 74 20 61 20  t);.     {int a 
3210: 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69  = va_arg_int(ali
3220: 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 62  st);.      int b
3230: 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c   = va_arg_int(al
3240: 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20  ist);.      int 
3250: 63 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61  c = va_arg_int(a
3260: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74  list);.      int
3270: 20 64 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28   d = va_arg_int(
3280: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e  alist);.      in
3290: 74 20 65 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74  t e = va_arg_int
32a0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69  (alist);.      i
32b0: 6e 74 20 66 20 3d 20 76 61 5f 61 72 67 5f 69 6e  nt f = va_arg_in
32c0: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
32d0: 69 6e 74 20 67 20 3d 20 76 61 5f 61 72 67 5f 69  int g = va_arg_i
32e0: 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  nt(alist);.     
32f0: 20 69 6e 74 20 68 20 3d 20 76 61 5f 61 72 67 5f   int h = va_arg_
3300: 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  int(alist);.    
3310: 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63 2b 64 2b    int r=a+b+c+d+
3320: 65 2b 66 2b 67 2b 68 3b 0a 20 20 20 20 20 20 66  e+f+g+h;.      f
3330: 70 72 69 6e 74 66 28 6f 75 74 2c 22 69 6e 74 20  printf(out,"int 
3340: 66 28 38 2a 69 6e 74 29 3a 28 25 64 2c 25 64 2c  f(8*int):(%d,%d,
3350: 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25  %d,%d,%d,%d,%d,%
3360: 64 29 22 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c  d)",a,b,c,d,e,f,
3370: 67 2c 68 29 3b 0a 20 20 20 20 20 20 66 66 6c 75  g,h);.      fflu
3380: 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76  sh(out);.      v
3390: 61 5f 72 65 74 75 72 6e 5f 69 6e 74 28 61 6c 69  a_return_int(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 69 5f 69 31 36 29 0a 20 20 20  oid*)&i_i16).   
33e0: 20 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72   {.      va_star
33f0: 74 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20  t_int(alist);.  
3400: 20 20 20 7b 69 6e 74 20 61 20 3d 20 76 61 5f 61     {int a = va_a
3410: 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20  rg_int(alist);. 
3420: 20 20 20 20 20 69 6e 74 20 62 20 3d 20 76 61 5f       int b = va_
3430: 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a  arg_int(alist);.
3440: 20 20 20 20 20 20 69 6e 74 20 63 20 3d 20 76 61        int c = va
3450: 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b  _arg_int(alist);
3460: 0a 20 20 20 20 20 20 69 6e 74 20 64 20 3d 20 76  .      int d = v
3470: 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74 29  a_arg_int(alist)
3480: 3b 0a 20 20 20 20 20 20 69 6e 74 20 65 20 3d 20  ;.      int e = 
3490: 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73 74  va_arg_int(alist
34a0: 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 66 20 3d  );.      int f =
34b0: 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69 73   va_arg_int(alis
34c0: 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 67 20  t);.      int g 
34d0: 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c 69  = va_arg_int(ali
34e0: 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 68  st);.      int h
34f0: 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c   = va_arg_int(al
3500: 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20  ist);.      int 
3510: 69 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61  i = va_arg_int(a
3520: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74  list);.      int
3530: 20 6a 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28   j = va_arg_int(
3540: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69 6e  alist);.      in
3550: 74 20 6b 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74  t k = va_arg_int
3560: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69  (alist);.      i
3570: 6e 74 20 6c 20 3d 20 76 61 5f 61 72 67 5f 69 6e  nt l = va_arg_in
3580: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
3590: 69 6e 74 20 6d 20 3d 20 76 61 5f 61 72 67 5f 69  int m = va_arg_i
35a0: 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  nt(alist);.     
35b0: 20 69 6e 74 20 6e 20 3d 20 76 61 5f 61 72 67 5f   int n = va_arg_
35c0: 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  int(alist);.    
35d0: 20 20 69 6e 74 20 6f 20 3d 20 76 61 5f 61 72 67    int o = va_arg
35e0: 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  _int(alist);.   
35f0: 20 20 20 69 6e 74 20 70 20 3d 20 76 61 5f 61 72     int p = va_ar
3600: 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20  g_int(alist);.  
3610: 20 20 20 20 69 6e 74 20 72 3d 61 2b 62 2b 63 2b      int r=a+b+c+
3620: 64 2b 65 2b 66 2b 67 2b 68 2b 69 2b 6a 2b 6b 2b  d+e+f+g+h+i+j+k+
3630: 6c 2b 6d 2b 6e 2b 6f 2b 70 3b 0a 20 20 20 20 20  l+m+n+o+p;.     
3640: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 69 6e   fprintf(out,"in
3650: 74 20 66 28 31 36 2a 69 6e 74 29 3a 28 25 64 2c  t f(16*int):(%d,
3660: 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25  %d,%d,%d,%d,%d,%
3670: 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64 2c 25 64  d,%d,%d,%d,%d,%d
3680: 2c 25 64 2c 25 64 2c 25 64 2c 25 64 29 22 2c 0a  ,%d,%d,%d,%d)",.
3690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 2c                a,
36a0: 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c 69 2c  b,c,d,e,f,g,h,i,
36b0: 6a 2c 6b 2c 6c 2c 6d 2c 6e 2c 6f 2c 70 29 3b 0a  j,k,l,m,n,o,p);.
36c0: 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74        fflush(out
36d0: 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75  );.      va_retu
36e0: 72 6e 5f 69 6e 74 28 61 6c 69 73 74 2c 20 72 29  rn_int(alist, r)
36f0: 3b 0a 20 20 20 20 7d 7d 0a 0a 20 20 2f 2a 20 66  ;.    }}..  /* f
3700: 6c 6f 61 74 20 74 65 73 74 73 20 2a 2f 0a 20 20  loat tests */.  
3710: 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74  else if (current
3720: 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f  _function == (vo
3730: 69 64 2a 29 26 66 5f 66 29 0a 20 20 20 20 7b 0a  id*)&f_f).    {.
3740: 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f 66        va_start_f
3750: 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  loat(alist);.   
3760: 20 20 7b 66 6c 6f 61 74 20 61 20 3d 20 76 61 5f    {float a = va_
3770: 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29  arg_float(alist)
3780: 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 72 3d  ;.      float r=
3790: 61 2b 31 2e 30 3b 0a 20 20 20 20 20 20 66 70 72  a+1.0;.      fpr
37a0: 69 6e 74 66 28 6f 75 74 2c 22 66 6c 6f 61 74 20  intf(out,"float 
37b0: 66 28 66 6c 6f 61 74 29 3a 28 25 67 29 22 2c 61  f(float):(%g)",a
37c0: 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28  );.      fflush(
37d0: 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72  out);.      va_r
37e0: 65 74 75 72 6e 5f 66 6c 6f 61 74 28 61 6c 69 73  eturn_float(alis
37f0: 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20  t, r);.    }}.  
3800: 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74  else if (current
3810: 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f  _function == (vo
3820: 69 64 2a 29 26 66 5f 66 32 29 0a 20 20 20 20 7b  id*)&f_f2).    {
3830: 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f  .      va_start_
3840: 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20  float(alist);.  
3850: 20 20 20 7b 66 6c 6f 61 74 20 61 20 3d 20 76 61     {float a = va
3860: 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74  _arg_float(alist
3870: 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 62  );.      float b
3880: 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28   = va_arg_float(
3890: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c  alist);.      fl
38a0: 6f 61 74 20 72 3d 61 2b 62 3b 0a 20 20 20 20 20  oat r=a+b;.     
38b0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 66 6c   fprintf(out,"fl
38c0: 6f 61 74 20 66 28 32 2a 66 6c 6f 61 74 29 3a 28  oat f(2*float):(
38d0: 25 67 2c 25 67 29 22 2c 61 2c 62 29 3b 0a 20 20  %g,%g)",a,b);.  
38e0: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
38f0: 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e  .      va_return
3900: 5f 66 6c 6f 61 74 28 61 6c 69 73 74 2c 20 72 29  _float(alist, r)
3910: 3b 0a 20 20 20 20 7d 7d 0a 20 20 65 6c 73 65 20  ;.    }}.  else 
3920: 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75 6e 63  if (current_func
3930: 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26  tion == (void*)&
3940: 66 5f 66 34 29 0a 20 20 20 20 7b 0a 20 20 20 20  f_f4).    {.    
3950: 20 20 76 61 5f 73 74 61 72 74 5f 66 6c 6f 61 74    va_start_float
3960: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 66  (alist);.     {f
3970: 6c 6f 61 74 20 61 20 3d 20 76 61 5f 61 72 67 5f  loat a = va_arg_
3980: 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20  float(alist);.  
3990: 20 20 20 20 66 6c 6f 61 74 20 62 20 3d 20 76 61      float b = va
39a0: 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74  _arg_float(alist
39b0: 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 63  );.      float c
39c0: 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28   = va_arg_float(
39d0: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c  alist);.      fl
39e0: 6f 61 74 20 64 20 3d 20 76 61 5f 61 72 67 5f 66  oat d = va_arg_f
39f0: 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  loat(alist);.   
3a00: 20 20 20 66 6c 6f 61 74 20 72 3d 61 2b 62 2b 63     float r=a+b+c
3a10: 2b 64 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74  +d;.      fprint
3a20: 66 28 6f 75 74 2c 22 66 6c 6f 61 74 20 66 28 34  f(out,"float f(4
3a30: 2a 66 6c 6f 61 74 29 3a 28 25 67 2c 25 67 2c 25  *float):(%g,%g,%
3a40: 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 29 3b  g,%g)",a,b,c,d);
3a50: 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75  .      fflush(ou
3a60: 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74  t);.      va_ret
3a70: 75 72 6e 5f 66 6c 6f 61 74 28 61 6c 69 73 74 2c  urn_float(alist,
3a80: 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20 65 6c   r);.    }}.  el
3a90: 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66  se if (current_f
3aa0: 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64  unction == (void
3ab0: 2a 29 26 66 5f 66 38 29 0a 20 20 20 20 7b 0a 20  *)&f_f8).    {. 
3ac0: 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f 66 6c       va_start_fl
3ad0: 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  oat(alist);.    
3ae0: 20 7b 66 6c 6f 61 74 20 61 20 3d 20 76 61 5f 61   {float a = 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 62 20 3d  .      float b =
3b10: 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c   va_arg_float(al
3b20: 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61  ist);.      floa
3b30: 74 20 63 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f  t c = va_arg_flo
3b40: 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  at(alist);.     
3b50: 20 66 6c 6f 61 74 20 64 20 3d 20 76 61 5f 61 72   float d = va_ar
3b60: 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a  g_float(alist);.
3b70: 20 20 20 20 20 20 66 6c 6f 61 74 20 65 20 3d 20        float e = 
3b80: 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69  va_arg_float(ali
3b90: 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74  st);.      float
3ba0: 20 66 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61   f = va_arg_floa
3bb0: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
3bc0: 66 6c 6f 61 74 20 67 20 3d 20 76 61 5f 61 72 67  float g = va_arg
3bd0: 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20  _float(alist);. 
3be0: 20 20 20 20 20 66 6c 6f 61 74 20 68 20 3d 20 76       float h = v
3bf0: 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73  a_arg_float(alis
3c00: 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20  t);.      float 
3c10: 72 3d 61 2b 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b  r=a+b+c+d+e+f+g+
3c20: 68 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66  h;.      fprintf
3c30: 28 6f 75 74 2c 22 66 6c 6f 61 74 20 66 28 38 2a  (out,"float f(8*
3c40: 66 6c 6f 61 74 29 3a 28 25 67 2c 25 67 2c 25 67  float):(%g,%g,%g
3c50: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 29  ,%g,%g,%g,%g,%g)
3c60: 22 2c 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c  ",a,b,c,d,e,f,g,
3c70: 68 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68  h);.      fflush
3c80: 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f  (out);.      va_
3c90: 72 65 74 75 72 6e 5f 66 6c 6f 61 74 28 61 6c 69  return_float(ali
3ca0: 73 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20  st, r);.    }}. 
3cb0: 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e   else if (curren
3cc0: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76  t_function == (v
3cd0: 6f 69 64 2a 29 26 66 5f 66 31 36 29 0a 20 20 20  oid*)&f_f16).   
3ce0: 20 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72   {.      va_star
3cf0: 74 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a  t_float(alist);.
3d00: 20 20 20 20 20 7b 66 6c 6f 61 74 20 61 20 3d 20       {float a = 
3d10: 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69  va_arg_float(ali
3d20: 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74  st);.      float
3d30: 20 62 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61   b = va_arg_floa
3d40: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
3d50: 66 6c 6f 61 74 20 63 20 3d 20 76 61 5f 61 72 67  float c = va_arg
3d60: 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20  _float(alist);. 
3d70: 20 20 20 20 20 66 6c 6f 61 74 20 64 20 3d 20 76       float d = v
3d80: 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73  a_arg_float(alis
3d90: 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20  t);.      float 
3da0: 65 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74  e = va_arg_float
3db0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66  (alist);.      f
3dc0: 6c 6f 61 74 20 66 20 3d 20 76 61 5f 61 72 67 5f  loat f = va_arg_
3dd0: 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20  float(alist);.  
3de0: 20 20 20 20 66 6c 6f 61 74 20 67 20 3d 20 76 61      float g = va
3df0: 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74  _arg_float(alist
3e00: 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 68  );.      float h
3e10: 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28   = va_arg_float(
3e20: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c  alist);.      fl
3e30: 6f 61 74 20 69 20 3d 20 76 61 5f 61 72 67 5f 66  oat i = va_arg_f
3e40: 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  loat(alist);.   
3e50: 20 20 20 66 6c 6f 61 74 20 6a 20 3d 20 76 61 5f     float j = va_
3e60: 61 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29  arg_float(alist)
3e70: 3b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 6b 20  ;.      float k 
3e80: 3d 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61  = va_arg_float(a
3e90: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f  list);.      flo
3ea0: 61 74 20 6c 20 3d 20 76 61 5f 61 72 67 5f 66 6c  at l = va_arg_fl
3eb0: 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  oat(alist);.    
3ec0: 20 20 66 6c 6f 61 74 20 6d 20 3d 20 76 61 5f 61    float m = va_a
3ed0: 72 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b  rg_float(alist);
3ee0: 0a 20 20 20 20 20 20 66 6c 6f 61 74 20 6e 20 3d  .      float n =
3ef0: 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c   va_arg_float(al
3f00: 69 73 74 29 3b 0a 20 20 20 20 20 20 66 6c 6f 61  ist);.      floa
3f10: 74 20 6f 20 3d 20 76 61 5f 61 72 67 5f 66 6c 6f  t o = va_arg_flo
3f20: 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  at(alist);.     
3f30: 20 66 6c 6f 61 74 20 70 20 3d 20 76 61 5f 61 72   float p = va_ar
3f40: 67 5f 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a  g_float(alist);.
3f50: 20 20 20 20 20 20 66 6c 6f 61 74 20 72 3d 61 2b        float r=a+
3f60: 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 2b 69 2b  b+c+d+e+f+g+h+i+
3f70: 6a 2b 6b 2b 6c 2b 6d 2b 6e 2b 6f 2b 70 3b 0a 20  j+k+l+m+n+o+p;. 
3f80: 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74       fprintf(out
3f90: 2c 22 66 6c 6f 61 74 20 66 28 31 36 2a 66 6c 6f  ,"float f(16*flo
3fa0: 61 74 29 3a 28 25 67 2c 25 67 2c 25 67 2c 25 67  at):(%g,%g,%g,%g
3fb0: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c  ,%g,%g,%g,%g,%g,
3fc0: 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25  %g,%g,%g,%g,%g,%
3fd0: 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 2c 65  g,%g)",a,b,c,d,e
3fe0: 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c 6c 2c 6d  ,f,g,h,i,j,k,l,m
3ff0: 2c 6e 2c 6f 2c 70 29 3b 0a 20 20 20 20 20 20 66  ,n,o,p);.      f
4000: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20  flush(out);.    
4010: 20 20 76 61 5f 72 65 74 75 72 6e 5f 66 6c 6f 61    va_return_floa
4020: 74 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20 20  t(alist, r);.   
4030: 20 7d 7d 0a 0a 20 20 2f 2a 20 64 6f 75 62 6c 65   }}..  /* double
4040: 20 74 65 73 74 73 20 2a 2f 0a 20 20 65 6c 73 65   tests */.  else
4050: 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75 6e   if (current_fun
4060: 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29  ction == (void*)
4070: 26 64 5f 64 29 0a 20 20 20 20 7b 0a 20 20 20 20  &d_d).    {.    
4080: 20 20 76 61 5f 73 74 61 72 74 5f 64 6f 75 62 6c    va_start_doubl
4090: 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b  e(alist);.     {
40a0: 64 6f 75 62 6c 65 20 61 20 3d 20 76 61 5f 61 72  double a = va_ar
40b0: 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b  g_double(alist);
40c0: 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 72 3d  .      double r=
40d0: 61 2b 31 2e 30 3b 0a 20 20 20 20 20 20 66 70 72  a+1.0;.      fpr
40e0: 69 6e 74 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65  intf(out,"double
40f0: 20 66 28 64 6f 75 62 6c 65 29 3a 28 25 67 29 22   f(double):(%g)"
4100: 2c 61 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73  ,a);.      fflus
4110: 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61  h(out);.      va
4120: 5f 72 65 74 75 72 6e 5f 64 6f 75 62 6c 65 28 61  _return_double(a
4130: 6c 69 73 74 2c 20 72 29 3b 0a 20 20 20 20 7d 7d  list, r);.    }}
4140: 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72  .  else if (curr
4150: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20  ent_function == 
4160: 28 76 6f 69 64 2a 29 26 64 5f 64 32 29 0a 20 20  (void*)&d_d2).  
4170: 20 20 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61    {.      va_sta
4180: 72 74 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29  rt_double(alist)
4190: 3b 0a 20 20 20 20 20 7b 64 6f 75 62 6c 65 20 61  ;.     {double a
41a0: 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65   = va_arg_double
41b0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64  (alist);.      d
41c0: 6f 75 62 6c 65 20 62 20 3d 20 76 61 5f 61 72 67  ouble b = va_arg
41d0: 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a  _double(alist);.
41e0: 20 20 20 20 20 20 64 6f 75 62 6c 65 20 72 3d 61        double r=a
41f0: 2b 62 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74  +b;.      fprint
4200: 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65 20 66 28  f(out,"double f(
4210: 32 2a 64 6f 75 62 6c 65 29 3a 28 25 67 2c 25 67  2*double):(%g,%g
4220: 29 22 2c 61 2c 62 29 3b 0a 20 20 20 20 20 20 66  )",a,b);.      f
4230: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20  flush(out);.    
4240: 20 20 76 61 5f 72 65 74 75 72 6e 5f 64 6f 75 62    va_return_doub
4250: 6c 65 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20  le(alist, r);.  
4260: 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20 28    }}.  else if (
4270: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
4280: 20 3d 3d 20 28 76 6f 69 64 2a 29 26 64 5f 64 34   == (void*)&d_d4
4290: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61  ).    {.      va
42a0: 5f 73 74 61 72 74 5f 64 6f 75 62 6c 65 28 61 6c  _start_double(al
42b0: 69 73 74 29 3b 0a 20 20 20 20 20 7b 64 6f 75 62  ist);.     {doub
42c0: 6c 65 20 61 20 3d 20 76 61 5f 61 72 67 5f 64 6f  le a = va_arg_do
42d0: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
42e0: 20 20 20 64 6f 75 62 6c 65 20 62 20 3d 20 76 61     double b = va
42f0: 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73  _arg_double(alis
4300: 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65  t);.      double
4310: 20 63 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62   c = va_arg_doub
4320: 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  le(alist);.     
4330: 20 64 6f 75 62 6c 65 20 64 20 3d 20 76 61 5f 61   double d = va_a
4340: 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29  rg_double(alist)
4350: 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 72  ;.      double r
4360: 3d 61 2b 62 2b 63 2b 64 3b 0a 20 20 20 20 20 20  =a+b+c+d;.      
4370: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 64 6f 75  fprintf(out,"dou
4380: 62 6c 65 20 66 28 34 2a 64 6f 75 62 6c 65 29 3a  ble f(4*double):
4390: 28 25 67 2c 25 67 2c 25 67 2c 25 67 29 22 2c 61  (%g,%g,%g,%g)",a
43a0: 2c 62 2c 63 2c 64 29 3b 0a 20 20 20 20 20 20 66  ,b,c,d);.      f
43b0: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20  flush(out);.    
43c0: 20 20 76 61 5f 72 65 74 75 72 6e 5f 64 6f 75 62    va_return_doub
43d0: 6c 65 28 61 6c 69 73 74 2c 20 72 29 3b 0a 20 20  le(alist, r);.  
43e0: 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66 20 28    }}.  else if (
43f0: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
4400: 20 3d 3d 20 28 76 6f 69 64 2a 29 26 64 5f 64 38   == (void*)&d_d8
4410: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61  ).    {.      va
4420: 5f 73 74 61 72 74 5f 64 6f 75 62 6c 65 28 61 6c  _start_double(al
4430: 69 73 74 29 3b 0a 20 20 20 20 20 7b 64 6f 75 62  ist);.     {doub
4440: 6c 65 20 61 20 3d 20 76 61 5f 61 72 67 5f 64 6f  le a = va_arg_do
4450: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
4460: 20 20 20 64 6f 75 62 6c 65 20 62 20 3d 20 76 61     double b = va
4470: 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73  _arg_double(alis
4480: 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65  t);.      double
4490: 20 63 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62   c = va_arg_doub
44a0: 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  le(alist);.     
44b0: 20 64 6f 75 62 6c 65 20 64 20 3d 20 76 61 5f 61   double d = va_a
44c0: 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29  rg_double(alist)
44d0: 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 65  ;.      double e
44e0: 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65   = va_arg_double
44f0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64  (alist);.      d
4500: 6f 75 62 6c 65 20 66 20 3d 20 76 61 5f 61 72 67  ouble f = va_arg
4510: 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a  _double(alist);.
4520: 20 20 20 20 20 20 64 6f 75 62 6c 65 20 67 20 3d        double g =
4530: 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61   va_arg_double(a
4540: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75  list);.      dou
4550: 62 6c 65 20 68 20 3d 20 76 61 5f 61 72 67 5f 64  ble h = va_arg_d
4560: 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20  ouble(alist);.  
4570: 20 20 20 20 64 6f 75 62 6c 65 20 72 3d 61 2b 62      double r=a+b
4580: 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 3b 0a 20 20  +c+d+e+f+g+h;.  
4590: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
45a0: 22 64 6f 75 62 6c 65 20 66 28 38 2a 64 6f 75 62  "double f(8*doub
45b0: 6c 65 29 3a 28 25 67 2c 25 67 2c 25 67 2c 25 67  le):(%g,%g,%g,%g
45c0: 2c 25 67 2c 25 67 2c 25 67 2c 25 67 29 22 2c 61  ,%g,%g,%g,%g)",a
45d0: 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 29 3b  ,b,c,d,e,f,g,h);
45e0: 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75  .      fflush(ou
45f0: 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74  t);.      va_ret
4600: 75 72 6e 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  urn_double(alist
4610: 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20 65  , r);.    }}.  e
4620: 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f  lse if (current_
4630: 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69  function == (voi
4640: 64 2a 29 26 64 5f 64 31 36 29 0a 20 20 20 20 7b  d*)&d_d16).    {
4650: 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f  .      va_start_
4660: 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20  double(alist);. 
4670: 20 20 20 20 7b 64 6f 75 62 6c 65 20 61 20 3d 20      {double a = 
4680: 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c  va_arg_double(al
4690: 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62  ist);.      doub
46a0: 6c 65 20 62 20 3d 20 76 61 5f 61 72 67 5f 64 6f  le b = va_arg_do
46b0: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
46c0: 20 20 20 64 6f 75 62 6c 65 20 63 20 3d 20 76 61     double c = va
46d0: 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73  _arg_double(alis
46e0: 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65  t);.      double
46f0: 20 64 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62   d = va_arg_doub
4700: 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  le(alist);.     
4710: 20 64 6f 75 62 6c 65 20 65 20 3d 20 76 61 5f 61   double e = va_a
4720: 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29  rg_double(alist)
4730: 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 66  ;.      double f
4740: 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65   = va_arg_double
4750: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64  (alist);.      d
4760: 6f 75 62 6c 65 20 67 20 3d 20 76 61 5f 61 72 67  ouble g = va_arg
4770: 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a  _double(alist);.
4780: 20 20 20 20 20 20 64 6f 75 62 6c 65 20 68 20 3d        double h =
4790: 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61   va_arg_double(a
47a0: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75  list);.      dou
47b0: 62 6c 65 20 69 20 3d 20 76 61 5f 61 72 67 5f 64  ble i = va_arg_d
47c0: 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20  ouble(alist);.  
47d0: 20 20 20 20 64 6f 75 62 6c 65 20 6a 20 3d 20 76      double j = v
47e0: 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69  a_arg_double(ali
47f0: 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c  st);.      doubl
4800: 65 20 6b 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75  e k = va_arg_dou
4810: 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  ble(alist);.    
4820: 20 20 64 6f 75 62 6c 65 20 6c 20 3d 20 76 61 5f    double l = va_
4830: 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  arg_double(alist
4840: 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20  );.      double 
4850: 6d 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c  m = va_arg_doubl
4860: 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  e(alist);.      
4870: 64 6f 75 62 6c 65 20 6e 20 3d 20 76 61 5f 61 72  double n = va_ar
4880: 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b  g_double(alist);
4890: 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20 6f 20  .      double o 
48a0: 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28  = va_arg_double(
48b0: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f  alist);.      do
48c0: 75 62 6c 65 20 70 20 3d 20 76 61 5f 61 72 67 5f  uble p = va_arg_
48d0: 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20  double(alist);. 
48e0: 20 20 20 20 20 64 6f 75 62 6c 65 20 72 3d 61 2b       double r=a+
48f0: 62 2b 63 2b 64 2b 65 2b 66 2b 67 2b 68 2b 69 2b  b+c+d+e+f+g+h+i+
4900: 6a 2b 6b 2b 6c 2b 6d 2b 6e 2b 6f 2b 70 3b 0a 20  j+k+l+m+n+o+p;. 
4910: 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74       fprintf(out
4920: 2c 22 64 6f 75 62 6c 65 20 66 28 31 36 2a 64 6f  ,"double f(16*do
4930: 75 62 6c 65 29 3a 28 25 67 2c 25 67 2c 25 67 2c  uble):(%g,%g,%g,
4940: 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25  %g,%g,%g,%g,%g,%
4950: 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67 2c 25 67  g,%g,%g,%g,%g,%g
4960: 2c 25 67 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64  ,%g,%g)",a,b,c,d
4970: 2c 65 2c 66 2c 67 2c 68 2c 69 2c 6a 2c 6b 2c 6c  ,e,f,g,h,i,j,k,l
4980: 2c 6d 2c 6e 2c 6f 2c 70 29 3b 0a 20 20 20 20 20  ,m,n,o,p);.     
4990: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
49a0: 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 64 6f      va_return_do
49b0: 75 62 6c 65 28 61 6c 69 73 74 2c 20 72 29 3b 0a  uble(alist, r);.
49c0: 20 20 20 20 7d 7d 0a 0a 20 20 2f 2a 20 70 6f 69      }}..  /* poi
49d0: 6e 74 65 72 20 74 65 73 74 73 20 2a 2f 0a 20 20  nter tests */.  
49e0: 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74  else if (current
49f0: 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f  _function == (vo
4a00: 69 64 2a 29 26 76 70 5f 76 70 64 70 63 70 73 70  id*)&vp_vpdpcpsp
4a10: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61  ).    {.      va
4a20: 5f 73 74 61 72 74 5f 70 74 72 28 61 6c 69 73 74  _start_ptr(alist
4a30: 2c 20 76 6f 69 64 2a 29 3b 0a 20 20 20 20 20 7b  , void*);.     {
4a40: 76 6f 69 64 2a 20 61 20 3d 20 76 61 5f 61 72 67  void* a = va_arg
4a50: 5f 70 74 72 28 61 6c 69 73 74 2c 20 76 6f 69 64  _ptr(alist, void
4a60: 2a 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65  *);.      double
4a70: 2a 20 62 20 3d 20 76 61 5f 61 72 67 5f 70 74 72  * b = va_arg_ptr
4a80: 28 61 6c 69 73 74 2c 20 64 6f 75 62 6c 65 2a 29  (alist, double*)
4a90: 3b 0a 20 20 20 20 20 20 63 68 61 72 2a 20 63 20  ;.      char* c 
4aa0: 3d 20 76 61 5f 61 72 67 5f 70 74 72 28 61 6c 69  = va_arg_ptr(ali
4ab0: 73 74 2c 20 63 68 61 72 2a 29 3b 0a 20 20 20 20  st, char*);.    
4ac0: 20 20 49 6e 74 2a 20 64 20 3d 20 76 61 5f 61 72    Int* d = va_ar
4ad0: 67 5f 70 74 72 28 61 6c 69 73 74 2c 20 49 6e 74  g_ptr(alist, Int
4ae0: 2a 29 3b 0a 20 20 20 20 20 20 76 6f 69 64 2a 20  *);.      void* 
4af0: 72 65 74 20 3d 20 28 63 68 61 72 2a 29 62 20 2b  ret = (char*)b +
4b00: 20 31 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74   1;.      fprint
4b10: 66 28 6f 75 74 2c 22 76 6f 69 64 2a 20 66 28 76  f(out,"void* f(v
4b20: 6f 69 64 2a 2c 64 6f 75 62 6c 65 2a 2c 63 68 61  oid*,double*,cha
4b30: 72 2a 2c 49 6e 74 2a 29 3a 28 30 78 25 6c 78 2c  r*,Int*):(0x%lx,
4b40: 30 78 25 6c 78 2c 30 78 25 6c 78 2c 30 78 25 6c  0x%lx,0x%lx,0x%l
4b50: 78 29 22 2c 28 6c 6f 6e 67 29 61 2c 28 6c 6f 6e  x)",(long)a,(lon
4b60: 67 29 62 2c 28 6c 6f 6e 67 29 63 2c 28 6c 6f 6e  g)b,(long)c,(lon
4b70: 67 29 64 29 3b 0a 20 20 20 20 20 20 66 66 6c 75  g)d);.      fflu
4b80: 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76  sh(out);.      v
4b90: 61 5f 72 65 74 75 72 6e 5f 70 74 72 28 61 6c 69  a_return_ptr(ali
4ba0: 73 74 2c 20 76 6f 69 64 2a 2c 20 72 65 74 29 3b  st, void*, ret);
4bb0: 0a 20 20 20 20 7d 7d 0a 0a 20 20 2f 2a 20 6d 69  .    }}..  /* mi
4bc0: 78 65 64 20 6e 75 6d 62 65 72 20 74 65 73 74 73  xed number tests
4bd0: 20 2a 2f 0a 20 20 65 6c 73 65 20 69 66 20 28 63   */.  else if (c
4be0: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
4bf0: 3d 3d 20 28 76 6f 69 64 2a 29 26 75 63 5f 75 63  == (void*)&uc_uc
4c00: 73 69 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20  sil).    {.     
4c10: 20 76 61 5f 73 74 61 72 74 5f 75 63 68 61 72 28   va_start_uchar(
4c20: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 75 63  alist);.     {uc
4c30: 68 61 72 20 61 20 3d 20 76 61 5f 61 72 67 5f 75  har a = va_arg_u
4c40: 63 68 61 72 28 61 6c 69 73 74 29 3b 0a 20 20 20  char(alist);.   
4c50: 20 20 20 75 73 68 6f 72 74 20 62 20 3d 20 76 61     ushort b = va
4c60: 5f 61 72 67 5f 75 73 68 6f 72 74 28 61 6c 69 73  _arg_ushort(alis
4c70: 74 29 3b 0a 20 20 20 20 20 20 75 69 6e 74 20 63  t);.      uint c
4c80: 20 3d 20 76 61 5f 61 72 67 5f 75 69 6e 74 28 61   = va_arg_uint(a
4c90: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 75 6c 6f  list);.      ulo
4ca0: 6e 67 20 64 20 3d 20 76 61 5f 61 72 67 5f 75 6c  ng d = va_arg_ul
4cb0: 6f 6e 67 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  ong(alist);.    
4cc0: 20 20 75 63 68 61 72 20 72 3d 2d 31 3b 0a 20 20    uchar r=-1;.  
4cd0: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
4ce0: 22 75 63 68 61 72 20 66 28 75 63 68 61 72 2c 75  "uchar f(uchar,u
4cf0: 73 68 6f 72 74 2c 75 69 6e 74 2c 75 6c 6f 6e 67  short,uint,ulong
4d00: 29 3a 28 25 75 2c 25 75 2c 25 75 2c 25 6c 75 29  ):(%u,%u,%u,%lu)
4d10: 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20 20 20  ",a,b,c,d);.    
4d20: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
4d30: 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 75       va_return_u
4d40: 63 68 61 72 28 61 6c 69 73 74 2c 20 72 29 3b 0a  char(alist, r);.
4d50: 20 20 20 20 7d 7d 0a 20 20 65 6c 73 65 20 69 66      }}.  else if
4d60: 20 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69   (current_functi
4d70: 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 64 5f  on == (void*)&d_
4d80: 69 69 64 64 29 0a 20 20 20 20 7b 0a 20 20 20 20  iidd).    {.    
4d90: 20 20 76 61 5f 73 74 61 72 74 5f 64 6f 75 62 6c    va_start_doubl
4da0: 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b  e(alist);.     {
4db0: 69 6e 74 20 61 20 3d 20 76 61 5f 61 72 67 5f 69  int a = va_arg_i
4dc0: 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  nt(alist);.     
4dd0: 20 69 6e 74 20 62 20 3d 20 76 61 5f 61 72 67 5f   int b = va_arg_
4de0: 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20  int(alist);.    
4df0: 20 20 64 6f 75 62 6c 65 20 63 20 3d 20 76 61 5f    double c = va_
4e00: 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  arg_double(alist
4e10: 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20  );.      double 
4e20: 64 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c  d = va_arg_doubl
4e30: 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  e(alist);.      
4e40: 64 6f 75 62 6c 65 20 72 3d 61 2b 62 2b 63 2b 64  double r=a+b+c+d
4e50: 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66 28  ;.      fprintf(
4e60: 6f 75 74 2c 22 64 6f 75 62 6c 65 20 66 28 69 6e  out,"double f(in
4e70: 74 2c 69 6e 74 2c 64 6f 75 62 6c 65 2c 64 6f 75  t,int,double,dou
4e80: 62 6c 65 29 3a 28 25 64 2c 25 64 2c 25 67 2c 25  ble):(%d,%d,%g,%
4e90: 67 29 22 2c 61 2c 62 2c 63 2c 64 29 3b 0a 20 20  g)",a,b,c,d);.  
4ea0: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
4eb0: 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e  .      va_return
4ec0: 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 2c 20 72  _double(alist, r
4ed0: 29 3b 0a 20 20 20 20 7d 7d 0a 20 20 65 6c 73 65  );.    }}.  else
4ee0: 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75 6e   if (current_fun
4ef0: 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29  ction == (void*)
4f00: 26 64 5f 69 64 69 64 29 0a 20 20 20 20 7b 0a 20  &d_idid).    {. 
4f10: 20 20 20 20 20 76 61 5f 73 74 61 72 74 5f 64 6f       va_start_do
4f20: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
4f30: 20 20 7b 69 6e 74 20 61 20 3d 20 76 61 5f 61 72    {int a = va_ar
4f40: 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20  g_int(alist);.  
4f50: 20 20 20 20 64 6f 75 62 6c 65 20 62 20 3d 20 76      double b = v
4f60: 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69  a_arg_double(ali
4f70: 73 74 29 3b 0a 20 20 20 20 20 20 69 6e 74 20 63  st);.      int c
4f80: 20 3d 20 76 61 5f 61 72 67 5f 69 6e 74 28 61 6c   = va_arg_int(al
4f90: 69 73 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62  ist);.      doub
4fa0: 6c 65 20 64 20 3d 20 76 61 5f 61 72 67 5f 64 6f  le d = va_arg_do
4fb0: 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20  uble(alist);.   
4fc0: 20 20 20 64 6f 75 62 6c 65 20 72 3d 61 2b 62 2b     double r=a+b+
4fd0: 63 2b 64 3b 0a 20 20 20 20 20 20 66 70 72 69 6e  c+d;.      fprin
4fe0: 74 66 28 6f 75 74 2c 22 64 6f 75 62 6c 65 20 66  tf(out,"double f
4ff0: 28 69 6e 74 2c 64 6f 75 62 6c 65 2c 69 6e 74 2c  (int,double,int,
5000: 64 6f 75 62 6c 65 29 3a 28 25 64 2c 25 67 2c 25  double):(%d,%g,%
5010: 64 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 29 3b  d,%g)",a,b,c,d);
5020: 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75  .      fflush(ou
5030: 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74  t);.      va_ret
5040: 75 72 6e 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74  urn_double(alist
5050: 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 20 20 65  , r);.    }}.  e
5060: 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f  lse if (current_
5070: 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69  function == (voi
5080: 64 2a 29 26 75 73 5f 63 64 63 64 29 0a 20 20 20  d*)&us_cdcd).   
5090: 20 7b 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72   {.      va_star
50a0: 74 5f 75 73 68 6f 72 74 28 61 6c 69 73 74 29 3b  t_ushort(alist);
50b0: 0a 20 20 20 20 20 7b 63 68 61 72 20 61 20 3d 20  .     {char a = 
50c0: 76 61 5f 61 72 67 5f 63 68 61 72 28 61 6c 69 73  va_arg_char(alis
50d0: 74 29 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65  t);.      double
50e0: 20 62 20 3d 20 76 61 5f 61 72 67 5f 64 6f 75 62   b = va_arg_doub
50f0: 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20  le(alist);.     
5100: 20 63 68 61 72 20 63 20 3d 20 76 61 5f 61 72 67   char c = va_arg
5110: 5f 63 68 61 72 28 61 6c 69 73 74 29 3b 0a 20 20  _char(alist);.  
5120: 20 20 20 20 64 6f 75 62 6c 65 20 64 20 3d 20 76      double d = v
5130: 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61 6c 69  a_arg_double(ali
5140: 73 74 29 3b 0a 20 20 20 20 20 20 75 73 68 6f 72  st);.      ushor
5150: 74 20 72 20 3d 20 28 75 73 68 6f 72 74 29 28 61  t r = (ushort)(a
5160: 20 2b 20 62 20 2b 20 63 20 2b 20 64 29 3b 0a 20   + b + c + d);. 
5170: 20 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74       fprintf(out
5180: 2c 22 75 73 68 6f 72 74 20 66 28 63 68 61 72 2c  ,"ushort f(char,
5190: 64 6f 75 62 6c 65 2c 63 68 61 72 2c 64 6f 75 62  double,char,doub
51a0: 6c 65 29 3a 28 27 25 63 27 2c 25 67 2c 27 25 63  le):('%c',%g,'%c
51b0: 27 2c 25 67 29 22 2c 61 2c 62 2c 63 2c 64 29 3b  ',%g)",a,b,c,d);
51c0: 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75  .      fflush(ou
51d0: 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74  t);.      va_ret
51e0: 75 72 6e 5f 75 73 68 6f 72 74 28 61 6c 69 73 74  urn_ushort(alist
51f0: 2c 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 23 69 66  , r);.    }}.#if
5200: 64 65 66 20 48 41 56 45 5f 4c 4f 4e 47 4c 4f 4e  def HAVE_LONGLON
5210: 47 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72  G.  else if (cur
5220: 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d  rent_function ==
5230: 20 28 76 6f 69 64 2a 29 26 6c 6c 5f 66 6c 6c 69   (void*)&ll_flli
5240: 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 76 61  ).    {.      va
5250: 5f 73 74 61 72 74 5f 6c 6f 6e 67 6c 6f 6e 67 28  _start_longlong(
5260: 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 7b 66 6c  alist);.     {fl
5270: 6f 61 74 20 61 20 3d 20 76 61 5f 61 72 67 5f 66  oat a = va_arg_f
5280: 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20 20  loat(alist);.   
5290: 20 20 20 6c 6f 6e 67 20 6c 6f 6e 67 20 62 20 3d     long long b =
52a0: 20 76 61 5f 61 72 67 5f 6c 6f 6e 67 6c 6f 6e 67   va_arg_longlong
52b0: 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 69  (alist);.      i
52c0: 6e 74 20 63 20 3d 20 76 61 5f 61 72 67 5f 69 6e  nt c = va_arg_in
52d0: 74 28 61 6c 69 73 74 29 3b 0a 20 20 20 20 20 20  t(alist);.      
52e0: 6c 6f 6e 67 20 6c 6f 6e 67 20 72 20 3d 20 28 6c  long long r = (l
52f0: 6f 6e 67 20 6c 6f 6e 67 29 28 69 6e 74 29 61 20  ong long)(int)a 
5300: 2b 20 62 20 2b 20 28 6c 6f 6e 67 20 6c 6f 6e 67  + b + (long long
5310: 29 63 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74  )c;.      fprint
5320: 66 28 6f 75 74 2c 22 6c 6f 6e 67 20 6c 6f 6e 67  f(out,"long long
5330: 20 66 28 66 6c 6f 61 74 2c 6c 6f 6e 67 20 6c 6f   f(float,long lo
5340: 6e 67 2c 69 6e 74 29 3a 28 25 67 2c 30 78 25 6c  ng,int):(%g,0x%l
5350: 78 25 30 38 6c 78 2c 30 78 25 6c 78 29 22 2c 61  x%08lx,0x%lx)",a
5360: 2c 28 6c 6f 6e 67 29 28 62 3e 3e 33 32 29 2c 28  ,(long)(b>>32),(
5370: 6c 6f 6e 67 29 28 62 26 30 78 66 66 66 66 66 66  long)(b&0xffffff
5380: 66 66 29 2c 28 6c 6f 6e 67 29 63 29 3b 0a 20 20  ff),(long)c);.  
5390: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
53a0: 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e  .      va_return
53b0: 5f 6c 6f 6e 67 6c 6f 6e 67 28 61 6c 69 73 74 2c  _longlong(alist,
53c0: 20 72 29 3b 0a 20 20 20 20 7d 7d 0a 23 65 6e 64   r);.    }}.#end
53d0: 69 66 0a 0a 23 69 66 6e 64 65 66 20 53 4b 49 50  if..#ifndef SKIP
53e0: 5f 53 54 52 55 43 54 53 0a 20 20 2f 2a 20 73 74  _STRUCTS.  /* st
53f0: 72 75 63 74 75 72 65 20 74 65 73 74 73 20 2a 2f  ructure tests */
5400: 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72  .  else if (curr
5410: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20  ent_function == 
5420: 28 76 6f 69 64 2a 29 26 49 5f 49 49 49 29 0a 20  (void*)&I_III). 
5430: 20 20 20 7b 0a 20 20 20 20 20 20 49 6e 74 20 61     {.      Int a
5440: 3b 0a 20 20 20 20 20 20 49 6e 74 20 62 3b 0a 20  ;.      Int b;. 
5450: 20 20 20 20 20 49 6e 74 20 63 3b 0a 20 20 20 20       Int c;.    
5460: 20 20 49 6e 74 20 72 3b 0a 20 20 20 20 20 20 76    Int r;.      v
5470: 61 5f 73 74 61 72 74 5f 73 74 72 75 63 74 28 61  a_start_struct(a
5480: 6c 69 73 74 2c 20 49 6e 74 2c 20 31 29 3b 0a 20  list, Int, 1);. 
5490: 20 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67 5f       a = va_arg_
54a0: 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 49 6e  struct(alist, In
54b0: 74 29 3b 0a 20 20 20 20 20 20 62 20 3d 20 76 61  t);.      b = va
54c0: 5f 61 72 67 5f 73 74 72 75 63 74 28 61 6c 69 73  _arg_struct(alis
54d0: 74 2c 20 49 6e 74 29 3b 0a 20 20 20 20 20 20 63  t, Int);.      c
54e0: 20 3d 20 76 61 5f 61 72 67 5f 73 74 72 75 63 74   = va_arg_struct
54f0: 28 61 6c 69 73 74 2c 20 49 6e 74 29 3b 0a 20 20  (alist, Int);.  
5500: 20 20 20 20 72 2e 78 20 3d 20 61 2e 78 20 2b 20      r.x = a.x + 
5510: 62 2e 78 20 2b 20 63 2e 78 3b 0a 20 20 20 20 20  b.x + c.x;.     
5520: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 49 6e   fprintf(out,"In
5530: 74 20 66 28 49 6e 74 2c 49 6e 74 2c 49 6e 74 29  t f(Int,Int,Int)
5540: 3a 28 7b 25 64 7d 2c 7b 25 64 7d 2c 7b 25 64 7d  :({%d},{%d},{%d}
5550: 29 22 2c 61 2e 78 2c 62 2e 78 2c 63 2e 78 29 3b  )",a.x,b.x,c.x);
5560: 0a 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75  .      fflush(ou
5570: 74 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74  t);.      va_ret
5580: 75 72 6e 5f 73 74 72 75 63 74 28 61 6c 69 73 74  urn_struct(alist
5590: 2c 20 49 6e 74 2c 20 72 29 3b 0a 20 20 20 20 7d  , Int, r);.    }
55a0: 0a 23 69 66 6e 64 65 66 20 53 4b 49 50 5f 45 58  .#ifndef SKIP_EX
55b0: 54 52 41 5f 53 54 52 55 43 54 53 0a 20 20 65 6c  TRA_STRUCTS.  el
55c0: 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66  se if (current_f
55d0: 75 6e 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64  unction == (void
55e0: 2a 29 26 43 5f 43 64 43 29 0a 20 20 20 20 7b 0a  *)&C_CdC).    {.
55f0: 20 20 20 20 20 20 43 68 61 72 20 61 3b 0a 20 20        Char a;.  
5600: 20 20 20 20 64 6f 75 62 6c 65 20 62 3b 0a 20 20      double b;.  
5610: 20 20 20 20 43 68 61 72 20 63 3b 0a 20 20 20 20      Char c;.    
5620: 20 20 43 68 61 72 20 72 3b 0a 20 20 20 20 20 20    Char r;.      
5630: 76 61 5f 73 74 61 72 74 5f 73 74 72 75 63 74 28  va_start_struct(
5640: 61 6c 69 73 74 2c 20 43 68 61 72 2c 20 31 29 3b  alist, Char, 1);
5650: 0a 20 20 20 20 20 20 61 20 3d 20 76 61 5f 61 72  .      a = va_ar
5660: 67 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20  g_struct(alist, 
5670: 43 68 61 72 29 3b 0a 20 20 20 20 20 20 62 20 3d  Char);.      b =
5680: 20 76 61 5f 61 72 67 5f 64 6f 75 62 6c 65 28 61   va_arg_double(a
5690: 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 63 20 3d  list);.      c =
56a0: 20 76 61 5f 61 72 67 5f 73 74 72 75 63 74 28 61   va_arg_struct(a
56b0: 6c 69 73 74 2c 20 43 68 61 72 29 3b 0a 20 20 20  list, Char);.   
56c0: 20 20 20 72 2e 78 20 3d 20 28 61 2e 78 20 2b 20     r.x = (a.x + 
56d0: 63 2e 78 29 2f 32 3b 0a 20 20 20 20 20 20 66 70  c.x)/2;.      fp
56e0: 72 69 6e 74 66 28 6f 75 74 2c 22 43 68 61 72 20  rintf(out,"Char 
56f0: 66 28 43 68 61 72 2c 64 6f 75 62 6c 65 2c 43 68  f(Char,double,Ch
5700: 61 72 29 3a 28 7b 27 25 63 27 7d 2c 25 67 2c 7b  ar):({'%c'},%g,{
5710: 27 25 63 27 7d 29 22 2c 61 2e 78 2c 62 2c 63 2e  '%c'})",a.x,b,c.
5720: 78 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68  x);.      fflush
5730: 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f  (out);.      va_
5740: 72 65 74 75 72 6e 5f 73 74 72 75 63 74 28 61 6c  return_struct(al
5750: 69 73 74 2c 20 43 68 61 72 2c 20 72 29 3b 0a 20  ist, Char, r);. 
5760: 20 20 20 7d 0a 20 20 65 6c 73 65 20 69 66 20 28     }.  else if (
5770: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
5780: 20 3d 3d 20 28 76 6f 69 64 2a 29 26 46 5f 46 66   == (void*)&F_Ff
5790: 64 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 46  d).    {.      F
57a0: 6c 6f 61 74 20 61 3b 0a 20 20 20 20 20 20 66 6c  loat a;.      fl
57b0: 6f 61 74 20 62 3b 0a 20 20 20 20 20 20 64 6f 75  oat b;.      dou
57c0: 62 6c 65 20 63 3b 0a 20 20 20 20 20 20 46 6c 6f  ble c;.      Flo
57d0: 61 74 20 72 3b 0a 20 20 20 20 20 20 76 61 5f 73  at r;.      va_s
57e0: 74 61 72 74 5f 73 74 72 75 63 74 28 61 6c 69 73  tart_struct(alis
57f0: 74 2c 20 46 6c 6f 61 74 2c 20 76 61 5f 77 6f 72  t, Float, va_wor
5800: 64 5f 73 70 6c 69 74 74 61 62 6c 65 5f 31 28 66  d_splittable_1(f
5810: 6c 6f 61 74 29 29 3b 0a 20 20 20 20 20 20 61 20  loat));.      a 
5820: 3d 20 76 61 5f 61 72 67 5f 73 74 72 75 63 74 28  = va_arg_struct(
5830: 61 6c 69 73 74 2c 20 46 6c 6f 61 74 29 3b 0a 20  alist, Float);. 
5840: 20 20 20 20 20 62 20 3d 20 76 61 5f 61 72 67 5f       b = va_arg_
5850: 66 6c 6f 61 74 28 61 6c 69 73 74 29 3b 0a 20 20  float(alist);.  
5860: 20 20 20 20 63 20 3d 20 76 61 5f 61 72 67 5f 64      c = va_arg_d
5870: 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20  ouble(alist);.  
5880: 20 20 20 20 72 2e 78 20 3d 20 61 2e 78 20 2b 20      r.x = a.x + 
5890: 62 20 2b 20 63 3b 0a 20 20 20 20 20 20 66 70 72  b + c;.      fpr
58a0: 69 6e 74 66 28 6f 75 74 2c 22 46 6c 6f 61 74 20  intf(out,"Float 
58b0: 66 28 46 6c 6f 61 74 2c 66 6c 6f 61 74 2c 64 6f  f(Float,float,do
58c0: 75 62 6c 65 29 3a 28 7b 25 67 7d 2c 25 67 2c 25  uble):({%g},%g,%
58d0: 67 29 22 2c 61 2e 78 2c 62 2c 63 29 3b 0a 20 20  g)",a.x,b,c);.  
58e0: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
58f0: 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e  .      va_return
5900: 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 46  _struct(alist, F
5910: 6c 6f 61 74 2c 20 72 29 3b 0a 20 20 20 20 7d 0a  loat, r);.    }.
5920: 20 20 65 6c 73 65 20 69 66 20 28 63 75 72 72 65    else if (curre
5930: 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d 20 28  nt_function == (
5940: 76 6f 69 64 2a 29 26 44 5f 66 44 64 29 0a 20 20  void*)&D_fDd).  
5950: 20 20 7b 0a 20 20 20 20 20 20 66 6c 6f 61 74 20    {.      float 
5960: 61 3b 0a 20 20 20 20 20 20 44 6f 75 62 6c 65 20  a;.      Double 
5970: 62 3b 0a 20 20 20 20 20 20 64 6f 75 62 6c 65 20  b;.      double 
5980: 63 3b 0a 20 20 20 20 20 20 44 6f 75 62 6c 65 20  c;.      Double 
5990: 72 3b 0a 20 20 20 20 20 20 76 61 5f 73 74 61 72  r;.      va_star
59a0: 74 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20  t_struct(alist, 
59b0: 44 6f 75 62 6c 65 2c 20 76 61 5f 77 6f 72 64 5f  Double, va_word_
59c0: 73 70 6c 69 74 74 61 62 6c 65 5f 31 28 64 6f 75  splittable_1(dou
59d0: 62 6c 65 29 29 3b 0a 20 20 20 20 20 20 61 20 3d  ble));.      a =
59e0: 20 76 61 5f 61 72 67 5f 66 6c 6f 61 74 28 61 6c   va_arg_float(al
59f0: 69 73 74 29 3b 0a 20 20 20 20 20 20 62 20 3d 20  ist);.      b = 
5a00: 76 61 5f 61 72 67 5f 73 74 72 75 63 74 28 61 6c  va_arg_struct(al
5a10: 69 73 74 2c 20 44 6f 75 62 6c 65 29 3b 0a 20 20  ist, Double);.  
5a20: 20 20 20 20 63 20 3d 20 76 61 5f 61 72 67 5f 64      c = va_arg_d
5a30: 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b 0a 20 20  ouble(alist);.  
5a40: 20 20 20 20 72 2e 78 20 3d 20 61 20 2b 20 62 2e      r.x = a + b.
5a50: 78 20 2b 20 63 3b 0a 20 20 20 20 20 20 66 70 72  x + c;.      fpr
5a60: 69 6e 74 66 28 6f 75 74 2c 22 44 6f 75 62 6c 65  intf(out,"Double
5a70: 20 66 28 66 6c 6f 61 74 2c 44 6f 75 62 6c 65 2c   f(float,Double,
5a80: 64 6f 75 62 6c 65 29 3a 28 25 67 2c 7b 25 67 7d  double):(%g,{%g}
5a90: 2c 25 67 29 22 2c 61 2c 62 2e 78 2c 63 29 3b 0a  ,%g)",a,b.x,c);.
5aa0: 20 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74        fflush(out
5ab0: 29 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75  );.      va_retu
5ac0: 72 6e 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c  rn_struct(alist,
5ad0: 20 44 6f 75 62 6c 65 2c 20 72 29 3b 0a 20 20 20   Double, r);.   
5ae0: 20 7d 0a 23 65 6e 64 69 66 0a 20 20 65 6c 73 65   }.#endif.  else
5af0: 20 69 66 20 28 63 75 72 72 65 6e 74 5f 66 75 6e   if (current_fun
5b00: 63 74 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29  ction == (void*)
5b10: 26 4a 5f 4a 69 4a 29 0a 20 20 20 20 7b 0a 20 20  &J_JiJ).    {.  
5b20: 20 20 20 20 4a 20 61 3b 0a 20 20 20 20 20 20 69      J a;.      i
5b30: 6e 74 20 62 3b 0a 20 20 20 20 20 20 4a 20 63 3b  nt b;.      J c;
5b40: 0a 20 20 20 20 20 20 4a 20 72 3b 0a 20 20 20 20  .      J r;.    
5b50: 20 20 76 61 5f 73 74 61 72 74 5f 73 74 72 75 63    va_start_struc
5b60: 74 28 61 6c 69 73 74 2c 20 4a 2c 20 76 61 5f 77  t(alist, J, va_w
5b70: 6f 72 64 5f 73 70 6c 69 74 74 61 62 6c 65 5f 32  ord_splittable_2
5b80: 28 6c 6f 6e 67 2c 6c 6f 6e 67 29 29 3b 0a 20 20  (long,long));.  
5b90: 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67 5f 73      a = va_arg_s
5ba0: 74 72 75 63 74 28 61 6c 69 73 74 2c 20 4a 29 3b  truct(alist, J);
5bb0: 0a 20 20 20 20 20 20 62 20 3d 20 76 61 5f 61 72  .      b = va_ar
5bc0: 67 5f 69 6e 74 28 61 6c 69 73 74 29 3b 0a 20 20  g_int(alist);.  
5bd0: 20 20 20 20 63 20 3d 20 76 61 5f 61 72 67 5f 73      c = va_arg_s
5be0: 74 72 75 63 74 28 61 6c 69 73 74 2c 20 4a 29 3b  truct(alist, J);
5bf0: 0a 20 20 20 20 20 20 72 2e 6c 31 20 3d 20 61 2e  .      r.l1 = a.
5c00: 6c 31 2b 63 2e 6c 31 3b 20 72 2e 6c 32 20 3d 20  l1+c.l1; r.l2 = 
5c10: 61 2e 6c 32 2b 62 2b 63 2e 6c 32 3b 0a 20 20 20  a.l2+b+c.l2;.   
5c20: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
5c30: 4a 20 66 28 4a 2c 69 6e 74 2c 4a 29 3a 28 7b 25  J f(J,int,J):({%
5c40: 6c 64 2c 25 6c 64 7d 2c 25 64 2c 7b 25 6c 64 2c  ld,%ld},%d,{%ld,
5c50: 25 6c 64 7d 29 22 2c 61 2e 6c 31 2c 61 2e 6c 32  %ld})",a.l1,a.l2
5c60: 2c 62 2c 63 2e 6c 31 2c 63 2e 6c 32 29 3b 0a 20  ,b,c.l1,c.l2);. 
5c70: 20 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29       fflush(out)
5c80: 3b 0a 20 20 20 20 20 20 76 61 5f 72 65 74 75 72  ;.      va_retur
5c90: 6e 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20  n_struct(alist, 
5ca0: 4a 2c 20 72 29 3b 0a 20 20 20 20 7d 0a 23 69 66  J, r);.    }.#if
5cb0: 6e 64 65 66 20 53 4b 49 50 5f 45 58 54 52 41 5f  ndef SKIP_EXTRA_
5cc0: 53 54 52 55 43 54 53 0a 20 20 65 6c 73 65 20 69  STRUCTS.  else i
5cd0: 66 20 28 63 75 72 72 65 6e 74 5f 66 75 6e 63 74  f (current_funct
5ce0: 69 6f 6e 20 3d 3d 20 28 76 6f 69 64 2a 29 26 54  ion == (void*)&T
5cf0: 5f 54 63 54 29 0a 20 20 20 20 7b 0a 20 20 20 20  _TcT).    {.    
5d00: 20 20 54 20 61 3b 0a 20 20 20 20 20 20 63 68 61    T a;.      cha
5d10: 72 20 62 3b 0a 20 20 20 20 20 20 54 20 63 3b 0a  r b;.      T c;.
5d20: 20 20 20 20 20 20 54 20 72 3b 0a 20 20 20 20 20        T r;.     
5d30: 20 76 61 5f 73 74 61 72 74 5f 73 74 72 75 63 74   va_start_struct
5d40: 28 61 6c 69 73 74 2c 20 54 2c 20 31 29 3b 0a 20  (alist, T, 1);. 
5d50: 20 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67 5f       a = va_arg_
5d60: 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 54 29  struct(alist, T)
5d70: 3b 0a 20 20 20 20 20 20 62 20 3d 20 76 61 5f 61  ;.      b = va_a
5d80: 72 67 5f 63 68 61 72 28 61 6c 69 73 74 29 3b 0a  rg_char(alist);.
5d90: 20 20 20 20 20 20 63 20 3d 20 76 61 5f 61 72 67        c = va_arg
5da0: 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 54  _struct(alist, T
5db0: 29 3b 0a 20 20 20 20 20 20 72 2e 63 5b 30 5d 3d  );.      r.c[0]=
5dc0: 27 62 27 3b 20 72 2e 63 5b 31 5d 3d 63 2e 63 5b  'b'; r.c[1]=c.c[
5dd0: 31 5d 3b 20 72 2e 63 5b 32 5d 3d 63 2e 63 5b 32  1]; r.c[2]=c.c[2
5de0: 5d 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66  ];.      fprintf
5df0: 28 6f 75 74 2c 22 54 20 66 28 54 2c 63 68 61 72  (out,"T f(T,char
5e00: 2c 54 29 3a 28 7b 5c 22 25 63 25 63 25 63 5c 22  ,T):({\"%c%c%c\"
5e10: 7d 2c 27 25 63 27 2c 7b 5c 22 25 63 25 63 25 63  },'%c',{\"%c%c%c
5e20: 5c 22 7d 29 22 2c 61 2e 63 5b 30 5d 2c 61 2e 63  \"})",a.c[0],a.c
5e30: 5b 31 5d 2c 61 2e 63 5b 32 5d 2c 62 2c 63 2e 63  [1],a.c[2],b,c.c
5e40: 5b 30 5d 2c 63 2e 63 5b 31 5d 2c 63 2e 63 5b 32  [0],c.c[1],c.c[2
5e50: 5d 29 3b 0a 20 20 20 20 20 20 66 66 6c 75 73 68  ]);.      fflush
5e60: 28 6f 75 74 29 3b 0a 20 20 20 20 20 20 76 61 5f  (out);.      va_
5e70: 72 65 74 75 72 6e 5f 73 74 72 75 63 74 28 61 6c  return_struct(al
5e80: 69 73 74 2c 20 54 2c 20 72 29 3b 0a 20 20 20 20  ist, T, r);.    
5e90: 7d 0a 20 20 65 6c 73 65 20 69 66 20 28 63 75 72  }.  else if (cur
5ea0: 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 3d  rent_function ==
5eb0: 20 28 76 6f 69 64 2a 29 26 58 5f 42 63 64 42 29   (void*)&X_BcdB)
5ec0: 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 42 20 61  .    {.      B a
5ed0: 3b 0a 20 20 20 20 20 20 63 68 61 72 20 62 3b 0a  ;.      char b;.
5ee0: 20 20 20 20 20 20 64 6f 75 62 6c 65 20 63 3b 0a        double c;.
5ef0: 20 20 20 20 20 20 42 20 64 3b 0a 20 20 20 20 20        B d;.     
5f00: 20 73 74 61 74 69 63 20 58 20 78 72 3d 7b 22 72   static X xr={"r
5f10: 65 74 75 72 6e 20 76 61 6c 22 2c 27 52 27 7d 3b  eturn val",'R'};
5f20: 0a 20 20 20 20 20 20 58 20 72 3b 0a 20 20 20 20  .      X r;.    
5f30: 20 20 76 61 5f 73 74 61 72 74 5f 73 74 72 75 63    va_start_struc
5f40: 74 28 61 6c 69 73 74 2c 20 58 2c 20 30 29 3b 0a  t(alist, X, 0);.
5f50: 20 20 20 20 20 20 61 20 3d 20 76 61 5f 61 72 67        a = va_arg
5f60: 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20 42  _struct(alist, B
5f70: 29 3b 0a 20 20 20 20 20 20 62 20 3d 20 76 61 5f  );.      b = va_
5f80: 61 72 67 5f 63 68 61 72 28 61 6c 69 73 74 29 3b  arg_char(alist);
5f90: 0a 20 20 20 20 20 20 63 20 3d 20 76 61 5f 61 72  .      c = va_ar
5fa0: 67 5f 64 6f 75 62 6c 65 28 61 6c 69 73 74 29 3b  g_double(alist);
5fb0: 0a 20 20 20 20 20 20 64 20 3d 20 76 61 5f 61 72  .      d = va_ar
5fc0: 67 5f 73 74 72 75 63 74 28 61 6c 69 73 74 2c 20  g_struct(alist, 
5fd0: 42 29 3b 0a 20 20 20 20 20 20 72 20 3d 20 78 72  B);.      r = xr
5fe0: 3b 0a 20 20 20 20 20 20 72 2e 63 31 20 3d 20 62  ;.      r.c1 = b
5ff0: 3b 0a 20 20 20 20 20 20 66 70 72 69 6e 74 66 28  ;.      fprintf(
6000: 6f 75 74 2c 22 58 20 66 28 42 2c 63 68 61 72 2c  out,"X f(B,char,
6010: 64 6f 75 62 6c 65 2c 42 29 3a 28 7b 25 67 2c 7b  double,B):({%g,{
6020: 25 64 2c 25 64 2c 25 64 7d 7d 2c 27 25 63 27 2c  %d,%d,%d}},'%c',
6030: 25 67 2c 7b 25 67 2c 7b 25 64 2c 25 64 2c 25 64  %g,{%g,{%d,%d,%d
6040: 7d 7d 29 22 2c 0a 20 20 20 20 20 20 20 20 20 20  }})",.          
6050: 20 20 20 20 61 2e 64 2c 61 2e 69 5b 30 5d 2c 61      a.d,a.i[0],a
6060: 2e 69 5b 31 5d 2c 61 2e 69 5b 32 5d 2c 62 2c 63  .i[1],a.i[2],b,c
6070: 2c 64 2e 64 2c 64 2e 69 5b 30 5d 2c 64 2e 69 5b  ,d.d,d.i[0],d.i[
6080: 31 5d 2c 64 2e 69 5b 32 5d 29 3b 0a 20 20 20 20  1],d.i[2]);.    
6090: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
60a0: 20 20 20 20 20 76 61 5f 72 65 74 75 72 6e 5f 73       va_return_s
60b0: 74 72 75 63 74 28 61 6c 69 73 74 2c 20 58 2c 20  truct(alist, X, 
60c0: 72 29 3b 0a 20 20 20 20 7d 0a 23 65 6e 64 69 66  r);.    }.#endif
60d0: 0a 23 65 6e 64 69 66 0a 0a 20 20 65 6c 73 65 0a  .#endif..  else.
60e0: 20 20 20 20 7b 0a 20 20 20 20 20 20 66 70 72 69      {.      fpri
60f0: 6e 74 66 28 6f 75 74 2c 22 73 69 6d 75 6c 61 74  ntf(out,"simulat
6100: 65 3a 20 75 6e 6b 6e 6f 77 6e 20 66 75 6e 63 74  e: unknown funct
6110: 69 6f 6e 5c 6e 22 29 3b 0a 20 20 20 20 20 20 66  ion\n");.      f
6120: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20  flush(out);.    
6130: 7d 0a 7d 0a 0a 2f 2a 0a 20 2a 20 54 68 65 20 77  }.}../*. * The w
6140: 61 79 20 77 65 20 72 75 6e 20 74 68 65 73 65 20  ay we run these 
6150: 74 65 73 74 73 20 2d 20 66 69 72 73 74 20 63 61  tests - first ca
6160: 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20  ll the function 
6170: 64 69 72 65 63 74 6c 79 2c 20 74 68 65 6e 0a 20  directly, then. 
6180: 2a 20 74 68 72 6f 75 67 68 20 76 61 63 61 6c 6c  * through vacall
6190: 28 29 20 2d 20 74 68 65 72 65 20 69 73 20 74 68  () - there is th
61a0: 65 20 64 61 6e 67 65 72 20 74 68 61 74 20 61 72  e danger that ar
61b0: 67 75 6d 65 6e 74 73 20 6f 72 20 72 65 73 75 6c  guments or resul
61c0: 74 73 20 73 65 65 6d 0a 20 2a 20 74 6f 20 62 65  ts seem. * to be
61d0: 20 70 61 73 73 65 64 20 63 6f 72 72 65 63 74 6c   passed correctl
61e0: 79 2c 20 62 75 74 20 77 68 61 74 20 77 65 20 61  y, but what we a
61f0: 72 65 20 73 65 65 69 6e 67 20 61 72 65 20 69 6e  re seeing are in
6200: 20 66 61 63 74 20 74 68 65 20 76 65 73 74 69 67   fact the vestig
6210: 65 73 0a 20 2a 20 28 74 72 61 63 65 73 29 20 6f  es. * (traces) o
6220: 72 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 63  r the previous c
6230: 61 6c 6c 2e 20 54 68 69 73 20 6d 61 79 20 73 65  all. This may se
6240: 72 69 6f 75 73 6c 79 20 66 61 6b 65 20 74 68 65  riously fake the
6250: 20 74 65 73 74 2e 0a 20 2a 20 41 76 6f 69 64 20   test.. * Avoid 
6260: 74 68 69 73 20 62 79 20 63 6c 65 61 72 69 6e 67  this by clearing
6270: 20 74 68 65 20 72 65 67 69 73 74 65 72 73 20 62   the registers b
6280: 65 74 77 65 65 6e 20 74 68 65 20 66 69 72 73 74  etween the first
6290: 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20   and the second 
62a0: 63 61 6c 6c 2e 0a 20 2a 2f 0a 6c 6f 6e 67 20 63  call.. */.long c
62b0: 6c 65 61 72 5f 74 72 61 63 65 73 5f 69 20 5f 50  lear_traces_i _P
62c0: 28 28 61 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c  ((a,b,c,d,e,f,g,
62d0: 68 2c 69 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e 2c 6f 2c  h,i,j,k,l,m,n,o,
62e0: 70 29 2c 0a 20 20 6c 6f 6e 67 20 61 20 5f 20 6c  p),.  long a _ l
62f0: 6f 6e 67 20 62 20 5f 20 6c 6f 6e 67 20 63 20 5f  ong b _ long c _
6300: 20 6c 6f 6e 67 20 64 20 5f 20 6c 6f 6e 67 20 65   long d _ long e
6310: 20 5f 20 6c 6f 6e 67 20 66 20 5f 20 6c 6f 6e 67   _ long f _ long
6320: 20 67 20 5f 20 6c 6f 6e 67 20 68 20 5f 0a 20 20   g _ long h _.  
6330: 6c 6f 6e 67 20 69 20 5f 20 6c 6f 6e 67 20 6a 20  long i _ long j 
6340: 5f 20 6c 6f 6e 67 20 6b 20 5f 20 6c 6f 6e 67 20  _ long k _ long 
6350: 6c 20 5f 20 6c 6f 6e 67 20 6d 20 5f 20 6c 6f 6e  l _ long m _ lon
6360: 67 20 6e 20 5f 20 6c 6f 6e 67 20 6f 20 5f 20 6c  g n _ long o _ l
6370: 6f 6e 67 20 70 29 0a 7b 20 72 65 74 75 72 6e 20  ong p).{ return 
6380: 30 3b 20 7d 0a 66 6c 6f 61 74 20 63 6c 65 61 72  0; }.float clear
6390: 5f 74 72 61 63 65 73 5f 66 20 5f 50 28 28 61 2c  _traces_f _P((a,
63a0: 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c 69 2c  b,c,d,e,f,g,h,i,
63b0: 6a 2c 6b 2c 6c 2c 6d 2c 6e 2c 6f 2c 70 29 2c 0a  j,k,l,m,n,o,p),.
63c0: 20 20 66 6c 6f 61 74 20 61 20 5f 20 66 6c 6f 61    float a _ floa
63d0: 74 20 62 20 5f 20 66 6c 6f 61 74 20 63 20 5f 20  t b _ float c _ 
63e0: 66 6c 6f 61 74 20 64 20 5f 20 66 6c 6f 61 74 20  float d _ float 
63f0: 65 20 5f 20 66 6c 6f 61 74 20 66 20 5f 20 66 6c  e _ float f _ fl
6400: 6f 61 74 20 67 20 5f 0a 20 20 66 6c 6f 61 74 20  oat g _.  float 
6410: 68 20 5f 20 66 6c 6f 61 74 20 69 20 5f 20 66 6c  h _ float i _ fl
6420: 6f 61 74 20 6a 20 5f 20 66 6c 6f 61 74 20 6b 20  oat j _ float k 
6430: 5f 20 66 6c 6f 61 74 20 6c 20 5f 20 66 6c 6f 61  _ float l _ floa
6440: 74 20 6d 20 5f 20 66 6c 6f 61 74 20 6e 20 5f 0a  t m _ float n _.
6450: 20 20 66 6c 6f 61 74 20 6f 20 5f 20 66 6c 6f 61    float o _ floa
6460: 74 20 70 29 0a 7b 20 72 65 74 75 72 6e 20 30 2e  t p).{ return 0.
6470: 30 3b 20 7d 0a 64 6f 75 62 6c 65 20 63 6c 65 61  0; }.double clea
6480: 72 5f 74 72 61 63 65 73 5f 64 20 5f 50 28 28 61  r_traces_d _P((a
6490: 2c 62 2c 63 2c 64 2c 65 2c 66 2c 67 2c 68 2c 69  ,b,c,d,e,f,g,h,i
64a0: 2c 6a 2c 6b 2c 6c 2c 6d 2c 6e 2c 6f 2c 70 29 2c  ,j,k,l,m,n,o,p),
64b0: 0a 20 20 64 6f 75 62 6c 65 20 61 20 5f 20 64 6f  .  double a _ do
64c0: 75 62 6c 65 20 62 20 5f 20 64 6f 75 62 6c 65 20  uble b _ double 
64d0: 63 20 5f 20 64 6f 75 62 6c 65 20 64 20 5f 20 64  c _ double d _ d
64e0: 6f 75 62 6c 65 20 65 20 5f 20 64 6f 75 62 6c 65  ouble e _ double
64f0: 20 66 20 5f 20 64 6f 75 62 6c 65 20 67 20 5f 0a   f _ double g _.
6500: 20 20 64 6f 75 62 6c 65 20 68 20 5f 20 64 6f 75    double h _ dou
6510: 62 6c 65 20 69 20 5f 20 64 6f 75 62 6c 65 20 6a  ble i _ double j
6520: 20 5f 20 64 6f 75 62 6c 65 20 6b 20 5f 20 64 6f   _ double k _ do
6530: 75 62 6c 65 20 6c 20 5f 20 64 6f 75 62 6c 65 20  uble l _ double 
6540: 6d 20 5f 20 64 6f 75 62 6c 65 20 6e 20 5f 0a 20  m _ double n _. 
6550: 20 64 6f 75 62 6c 65 20 6f 20 5f 20 64 6f 75 62   double o _ doub
6560: 6c 65 20 70 29 0a 7b 20 72 65 74 75 72 6e 20 30  le p).{ return 0
6570: 2e 30 3b 20 7d 0a 4a 20 63 6c 65 61 72 5f 74 72  .0; }.J clear_tr
6580: 61 63 65 73 5f 4a 20 28 29 0a 7b 20 4a 20 6a 3b  aces_J ().{ J j;
6590: 20 6a 2e 6c 31 20 3d 20 6a 2e 6c 32 20 3d 20 30   j.l1 = j.l2 = 0
65a0: 3b 20 72 65 74 75 72 6e 20 6a 3b 20 7d 0a 76 6f  ; return j; }.vo
65b0: 69 64 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28  id clear_traces(
65c0: 29 0a 7b 20 63 6c 65 61 72 5f 74 72 61 63 65 73  ).{ clear_traces
65d0: 5f 69 28 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30  _i(0,0,0,0,0,0,0
65e0: 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30 2c 30  ,0,0,0,0,0,0,0,0
65f0: 2c 30 29 3b 0a 20 20 63 6c 65 61 72 5f 74 72 61  ,0);.  clear_tra
6600: 63 65 73 5f 66 28 30 2e 30 2c 30 2e 30 2c 30 2e  ces_f(0.0,0.0,0.
6610: 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e  0,0.0,0.0,0.0,0.
6620: 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e  0,0.0,0.0,0.0,0.
6630: 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e  0,0.0,0.0,0.0,0.
6640: 30 2c 30 2e 30 29 3b 0a 20 20 63 6c 65 61 72 5f  0,0.0);.  clear_
6650: 74 72 61 63 65 73 5f 64 28 30 2e 30 2c 30 2e 30  traces_d(0.0,0.0
6660: 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30  ,0.0,0.0,0.0,0.0
6670: 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30  ,0.0,0.0,0.0,0.0
6680: 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30 2c 30 2e 30  ,0.0,0.0,0.0,0.0
6690: 2c 30 2e 30 2c 30 2e 30 29 3b 0a 20 20 63 6c 65  ,0.0,0.0);.  cle
66a0: 61 72 5f 74 72 61 63 65 73 5f 4a 28 29 3b 0a 7d  ar_traces_J();.}
66b0: 0a 0a 69 6e 74 20 6d 61 69 6e 20 28 29 0a 7b 0a  ..int main ().{.
66c0: 20 20 6f 75 74 20 3d 20 73 74 64 6f 75 74 3b 0a    out = stdout;.
66d0: 0a 20 20 76 61 63 61 6c 6c 5f 66 75 6e 63 74 69  .  vacall_functi
66e0: 6f 6e 20 3d 20 26 73 69 6d 75 6c 61 74 6f 72 3b  on = &simulator;
66f0: 0a 0a 20 20 2f 2a 20 76 6f 69 64 20 74 65 73 74  ..  /* void test
6700: 73 20 2a 2f 0a 20 20 76 5f 76 28 29 3b 0a 20 20  s */.  v_v();.  
6710: 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a  clear_traces();.
6720: 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69    current_functi
6730: 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 76 5f  on = (void*) &v_
6740: 76 3b 20 28 46 54 59 50 45 28 76 6f 69 64 2c 28  v; (FTYPE(void,(
6750: 76 6f 69 64 29 29 20 76 61 63 61 6c 6c 29 20 28  void)) vacall) (
6760: 29 3b 0a 0a 20 20 2f 2a 20 69 6e 74 20 74 65 73  );..  /* int tes
6770: 74 73 20 2a 2f 0a 20 20 7b 20 69 6e 74 20 69 72  ts */.  { int ir
6780: 3b 0a 0a 20 20 20 20 69 72 20 3d 20 69 5f 76 28  ;..    ir = i_v(
6790: 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f  );.    fprintf(o
67a0: 75 74 2c 22 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b  ut,"->%d\n",ir);
67b0: 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29  .    fflush(out)
67c0: 3b 0a 20 20 20 20 69 72 20 3d 20 30 3b 20 63 6c  ;.    ir = 0; cl
67d0: 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20  ear_traces();.  
67e0: 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69    current_functi
67f0: 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 69 5f  on = (void*) &i_
6800: 76 3b 20 69 72 20 3d 20 28 46 54 59 50 45 28 69  v; ir = (FTYPE(i
6810: 6e 74 2c 28 76 6f 69 64 29 29 20 76 61 63 61 6c  nt,(void)) vacal
6820: 6c 29 20 28 29 3b 0a 20 20 20 20 66 70 72 69 6e  l) ();.    fprin
6830: 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22 2c  tf(out,"->%d\n",
6840: 69 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  ir);.    fflush(
6850: 6f 75 74 29 3b 0a 0a 20 20 20 20 69 72 20 3d 20  out);..    ir = 
6860: 69 5f 69 28 69 31 29 3b 0a 20 20 20 20 66 70 72  i_i(i1);.    fpr
6870: 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e  intf(out,"->%d\n
6880: 22 2c 69 72 29 3b 0a 20 20 20 20 66 66 6c 75 73  ",ir);.    fflus
6890: 68 28 6f 75 74 29 3b 0a 20 20 20 20 69 72 20 3d  h(out);.    ir =
68a0: 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73   0; clear_traces
68b0: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
68c0: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
68d0: 2a 29 20 26 69 5f 69 3b 20 69 72 20 3d 20 28 46  *) &i_i; ir = (F
68e0: 54 59 50 45 28 69 6e 74 2c 28 69 6e 74 29 29 20  TYPE(int,(int)) 
68f0: 76 61 63 61 6c 6c 29 20 28 69 31 29 3b 0a 20 20  vacall) (i1);.  
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 0a 20 20  fflush(out);..  
6930: 20 20 69 72 20 3d 20 69 5f 69 32 28 69 31 2c 69    ir = i_i2(i1,i
6940: 32 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28  2);.    fprintf(
6950: 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22 2c 69 72 29  out,"->%d\n",ir)
6960: 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74  ;.    fflush(out
6970: 29 3b 0a 20 20 20 20 69 72 20 3d 20 30 3b 20 63  );.    ir = 0; c
6980: 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20  lear_traces();. 
6990: 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74     current_funct
69a0: 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 69  ion = (void*) &i
69b0: 5f 69 32 3b 20 69 72 20 3d 20 28 46 54 59 50 45  _i2; ir = (FTYPE
69c0: 28 69 6e 74 2c 28 69 6e 74 2c 69 6e 74 29 29 20  (int,(int,int)) 
69d0: 76 61 63 61 6c 6c 29 20 28 69 31 2c 69 32 29 3b  vacall) (i1,i2);
69e0: 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .    fprintf(out
69f0: 2c 22 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a 20  ,"->%d\n",ir);. 
6a00: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
6a10: 0a 20 20 20 20 69 72 20 3d 20 69 5f 69 34 28 69  .    ir = i_i4(i
6a20: 31 2c 69 32 2c 69 33 2c 69 34 29 3b 0a 20 20 20  1,i2,i3,i4);.   
6a30: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
6a40: 25 64 5c 6e 22 2c 69 72 29 3b 0a 20 20 20 20 66  %d\n",ir);.    f
6a50: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20  flush(out);.    
6a60: 69 72 20 3d 20 30 3b 20 63 6c 65 61 72 5f 74 72  ir = 0; clear_tr
6a70: 61 63 65 73 28 29 3b 0a 20 20 20 20 63 75 72 72  aces();.    curr
6a80: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28  ent_function = (
6a90: 76 6f 69 64 2a 29 20 26 69 5f 69 34 3b 20 69 72  void*) &i_i4; ir
6aa0: 20 3d 20 28 46 54 59 50 45 28 69 6e 74 2c 28 69   = (FTYPE(int,(i
6ab0: 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 29 29  nt,int,int,int))
6ac0: 20 76 61 63 61 6c 6c 29 20 28 69 31 2c 69 32 2c   vacall) (i1,i2,
6ad0: 69 33 2c 69 34 29 3b 0a 20 20 20 20 66 70 72 69  i3,i4);.    fpri
6ae0: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22  ntf(out,"->%d\n"
6af0: 2c 69 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  ,ir);.    fflush
6b00: 28 6f 75 74 29 3b 0a 0a 20 20 20 20 69 72 20 3d  (out);..    ir =
6b10: 20 69 5f 69 38 28 69 31 2c 69 32 2c 69 33 2c 69   i_i8(i1,i2,i3,i
6b20: 34 2c 69 35 2c 69 36 2c 69 37 2c 69 38 29 3b 0a  4,i5,i6,i7,i8);.
6b30: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
6b40: 22 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a 20 20  "->%d\n",ir);.  
6b50: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
6b60: 20 20 20 69 72 20 3d 20 30 3b 20 63 6c 65 61 72     ir = 0; clear
6b70: 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20 63  _traces();.    c
6b80: 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20  urrent_function 
6b90: 3d 20 28 76 6f 69 64 2a 29 20 26 69 5f 69 38 3b  = (void*) &i_i8;
6ba0: 20 69 72 20 3d 20 28 46 54 59 50 45 28 69 6e 74   ir = (FTYPE(int
6bb0: 2c 28 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  ,(int,int,int,in
6bc0: 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  t,int,int,int,in
6bd0: 74 29 29 20 76 61 63 61 6c 6c 29 20 28 69 31 2c  t)) vacall) (i1,
6be0: 69 32 2c 69 33 2c 69 34 2c 69 35 2c 69 36 2c 69  i2,i3,i4,i5,i6,i
6bf0: 37 2c 69 38 29 3b 0a 20 20 20 20 66 70 72 69 6e  7,i8);.    fprin
6c00: 74 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22 2c  tf(out,"->%d\n",
6c10: 69 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  ir);.    fflush(
6c20: 6f 75 74 29 3b 0a 0a 20 20 20 20 69 72 20 3d 20  out);..    ir = 
6c30: 69 5f 69 31 36 28 69 31 2c 69 32 2c 69 33 2c 69  i_i16(i1,i2,i3,i
6c40: 34 2c 69 35 2c 69 36 2c 69 37 2c 69 38 2c 69 39  4,i5,i6,i7,i8,i9
6c50: 2c 69 31 30 2c 69 31 31 2c 69 31 32 2c 69 31 33  ,i10,i11,i12,i13
6c60: 2c 69 31 34 2c 69 31 35 2c 69 31 36 29 3b 0a 20  ,i14,i15,i16);. 
6c70: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
6c80: 2d 3e 25 64 5c 6e 22 2c 69 72 29 3b 0a 20 20 20  ->%d\n",ir);.   
6c90: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
6ca0: 20 20 69 72 20 3d 20 30 3b 20 63 6c 65 61 72 5f    ir = 0; clear_
6cb0: 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20 63 75  traces();.    cu
6cc0: 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d  rrent_function =
6cd0: 20 28 76 6f 69 64 2a 29 20 26 69 5f 69 31 36 3b   (void*) &i_i16;
6ce0: 20 69 72 20 3d 20 28 46 54 59 50 45 28 69 6e 74   ir = (FTYPE(int
6cf0: 2c 28 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  ,(int,int,int,in
6d00: 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  t,int,int,int,in
6d10: 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  t,int,int,int,in
6d20: 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e 74 2c 69 6e  t,int,int,int,in
6d30: 74 29 29 20 76 61 63 61 6c 6c 29 20 28 69 31 2c  t)) vacall) (i1,
6d40: 69 32 2c 69 33 2c 69 34 2c 69 35 2c 69 36 2c 69  i2,i3,i4,i5,i6,i
6d50: 37 2c 69 38 2c 69 39 2c 69 31 30 2c 69 31 31 2c  7,i8,i9,i10,i11,
6d60: 69 31 32 2c 69 31 33 2c 69 31 34 2c 69 31 35 2c  i12,i13,i14,i15,
6d70: 69 31 36 29 3b 0a 20 20 20 20 66 70 72 69 6e 74  i16);.    fprint
6d80: 66 28 6f 75 74 2c 22 2d 3e 25 64 5c 6e 22 2c 69  f(out,"->%d\n",i
6d90: 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f  r);.    fflush(o
6da0: 75 74 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 20 66  ut);.  }..  /* f
6db0: 6c 6f 61 74 20 74 65 73 74 73 20 2a 2f 0a 20 20  loat tests */.  
6dc0: 7b 20 66 6c 6f 61 74 20 66 72 3b 0a 0a 20 20 20  { float fr;..   
6dd0: 20 66 72 20 3d 20 66 5f 66 28 66 31 29 3b 0a 20   fr = f_f(f1);. 
6de0: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
6df0: 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20 20 20  ->%g\n",fr);.   
6e00: 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20   fflush(out);.  
6e10: 20 20 66 72 20 3d 20 30 2e 30 3b 20 63 6c 65 61    fr = 0.0; clea
6e20: 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20 20  r_traces();.    
6e30: 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e  current_function
6e40: 20 3d 20 28 76 6f 69 64 2a 29 20 26 66 5f 66 3b   = (void*) &f_f;
6e50: 20 66 72 20 3d 20 28 46 54 59 50 45 28 66 6c 6f   fr = (FTYPE(flo
6e60: 61 74 2c 28 66 6c 6f 61 74 29 29 20 76 61 63 61  at,(float)) vaca
6e70: 6c 6c 29 20 28 66 31 29 3b 0a 20 20 20 20 66 70  ll) (f1);.    fp
6e80: 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c  rintf(out,"->%g\
6e90: 6e 22 2c 66 72 29 3b 0a 20 20 20 20 66 66 6c 75  n",fr);.    fflu
6ea0: 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20 66 72  sh(out);..    fr
6eb0: 20 3d 20 66 5f 66 32 28 66 31 2c 66 32 29 3b 0a   = f_f2(f1,f2);.
6ec0: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
6ed0: 22 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20 20  "->%g\n",fr);.  
6ee0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
6ef0: 20 20 20 66 72 20 3d 20 30 2e 30 3b 20 63 6c 65     fr = 0.0; cle
6f00: 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20  ar_traces();.   
6f10: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
6f20: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 66 5f 66  n = (void*) &f_f
6f30: 32 3b 20 66 72 20 3d 20 28 46 54 59 50 45 28 66  2; fr = (FTYPE(f
6f40: 6c 6f 61 74 2c 28 66 6c 6f 61 74 2c 66 6c 6f 61  loat,(float,floa
6f50: 74 29 29 20 76 61 63 61 6c 6c 29 20 28 66 31 2c  t)) vacall) (f1,
6f60: 66 32 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66  f2);.    fprintf
6f70: 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 66 72  (out,"->%g\n",fr
6f80: 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75  );.    fflush(ou
6f90: 74 29 3b 0a 0a 20 20 20 20 66 72 20 3d 20 66 5f  t);..    fr = f_
6fa0: 66 34 28 66 31 2c 66 32 2c 66 33 2c 66 34 29 3b  f4(f1,f2,f3,f4);
6fb0: 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .    fprintf(out
6fc0: 2c 22 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20  ,"->%g\n",fr);. 
6fd0: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
6fe0: 20 20 20 20 66 72 20 3d 20 30 2e 30 3b 20 63 6c      fr = 0.0; cl
6ff0: 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20  ear_traces();.  
7000: 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69    current_functi
7010: 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 66 5f  on = (void*) &f_
7020: 66 34 3b 20 66 72 20 3d 20 28 46 54 59 50 45 28  f4; fr = (FTYPE(
7030: 66 6c 6f 61 74 2c 28 66 6c 6f 61 74 2c 66 6c 6f  float,(float,flo
7040: 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 29 29  at,float,float))
7050: 20 76 61 63 61 6c 6c 29 20 28 66 31 2c 66 32 2c   vacall) (f1,f2,
7060: 66 33 2c 66 34 29 3b 0a 20 20 20 20 66 70 72 69  f3,f4);.    fpri
7070: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22  ntf(out,"->%g\n"
7080: 2c 66 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  ,fr);.    fflush
7090: 28 6f 75 74 29 3b 0a 0a 20 20 20 20 66 72 20 3d  (out);..    fr =
70a0: 20 66 5f 66 38 28 66 31 2c 66 32 2c 66 33 2c 66   f_f8(f1,f2,f3,f
70b0: 34 2c 66 35 2c 66 36 2c 66 37 2c 66 38 29 3b 0a  4,f5,f6,f7,f8);.
70c0: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
70d0: 22 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20 20  "->%g\n",fr);.  
70e0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
70f0: 20 20 20 66 72 20 3d 20 30 2e 30 3b 20 63 6c 65     fr = 0.0; cle
7100: 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20  ar_traces();.   
7110: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
7120: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 66 5f 66  n = (void*) &f_f
7130: 38 3b 20 66 72 20 3d 20 28 46 54 59 50 45 28 66  8; fr = (FTYPE(f
7140: 6c 6f 61 74 2c 28 66 6c 6f 61 74 2c 66 6c 6f 61  loat,(float,floa
7150: 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c  t,float,float,fl
7160: 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c  oat,float,float,
7170: 66 6c 6f 61 74 29 29 20 76 61 63 61 6c 6c 29 20  float)) vacall) 
7180: 28 66 31 2c 66 32 2c 66 33 2c 66 34 2c 66 35 2c  (f1,f2,f3,f4,f5,
7190: 66 36 2c 66 37 2c 66 38 29 3b 0a 20 20 20 20 66  f6,f7,f8);.    f
71a0: 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67  printf(out,"->%g
71b0: 5c 6e 22 2c 66 72 29 3b 0a 20 20 20 20 66 66 6c  \n",fr);.    ffl
71c0: 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20 66  ush(out);..    f
71d0: 72 20 3d 20 66 5f 66 31 36 28 66 31 2c 66 32 2c  r = f_f16(f1,f2,
71e0: 66 33 2c 66 34 2c 66 35 2c 66 36 2c 66 37 2c 66  f3,f4,f5,f6,f7,f
71f0: 38 2c 66 39 2c 66 31 30 2c 66 31 31 2c 66 31 32  8,f9,f10,f11,f12
7200: 2c 66 31 33 2c 66 31 34 2c 66 31 35 2c 66 31 36  ,f13,f14,f15,f16
7210: 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f  );.    fprintf(o
7220: 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 66 72 29 3b  ut,"->%g\n",fr);
7230: 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29  .    fflush(out)
7240: 3b 0a 20 20 20 20 66 72 20 3d 20 30 2e 30 3b 20  ;.    fr = 0.0; 
7250: 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a  clear_traces();.
7260: 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63      current_func
7270: 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26  tion = (void*) &
7280: 66 5f 66 31 36 3b 20 66 72 20 3d 20 28 46 54 59  f_f16; fr = (FTY
7290: 50 45 28 66 6c 6f 61 74 2c 28 66 6c 6f 61 74 2c  PE(float,(float,
72a0: 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61  float,float,floa
72b0: 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c  t,float,float,fl
72c0: 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c  oat,float,float,
72d0: 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61  float,float,floa
72e0: 74 2c 66 6c 6f 61 74 2c 66 6c 6f 61 74 2c 66 6c  t,float,float,fl
72f0: 6f 61 74 2c 66 6c 6f 61 74 29 29 20 76 61 63 61  oat,float)) vaca
7300: 6c 6c 29 20 28 66 31 2c 66 32 2c 66 33 2c 66 34  ll) (f1,f2,f3,f4
7310: 2c 66 35 2c 66 36 2c 66 37 2c 66 38 2c 66 39 2c  ,f5,f6,f7,f8,f9,
7320: 66 31 30 2c 66 31 31 2c 66 31 32 2c 66 31 33 2c  f10,f11,f12,f13,
7330: 66 31 34 2c 66 31 35 2c 66 31 36 29 3b 0a 20 20  f14,f15,f16);.  
7340: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d    fprintf(out,"-
7350: 3e 25 67 5c 6e 22 2c 66 72 29 3b 0a 20 20 20 20  >%g\n",fr);.    
7360: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 7d  fflush(out);.  }
7370: 0a 0a 20 20 2f 2a 20 64 6f 75 62 6c 65 20 74 65  ..  /* double te
7380: 73 74 73 20 2a 2f 0a 20 20 7b 20 64 6f 75 62 6c  sts */.  { doubl
7390: 65 20 64 72 3b 0a 0a 20 20 20 20 64 72 20 3d 20  e dr;..    dr = 
73a0: 64 5f 64 28 64 31 29 3b 0a 20 20 20 20 66 70 72  d_d(d1);.    fpr
73b0: 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e  intf(out,"->%g\n
73c0: 22 2c 64 72 29 3b 0a 20 20 20 20 66 66 6c 75 73  ",dr);.    fflus
73d0: 68 28 6f 75 74 29 3b 0a 20 20 20 20 64 72 20 3d  h(out);.    dr =
73e0: 20 30 2e 30 3b 20 63 6c 65 61 72 5f 74 72 61 63   0.0; clear_trac
73f0: 65 73 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e  es();.    curren
7400: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f  t_function = (vo
7410: 69 64 2a 29 20 26 64 5f 64 3b 20 64 72 20 3d 20  id*) &d_d; dr = 
7420: 28 46 54 59 50 45 28 64 6f 75 62 6c 65 2c 28 64  (FTYPE(double,(d
7430: 6f 75 62 6c 65 29 29 20 76 61 63 61 6c 6c 29 20  ouble)) vacall) 
7440: 28 64 31 29 3b 0a 20 20 20 20 66 70 72 69 6e 74  (d1);.    fprint
7450: 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 64  f(out,"->%g\n",d
7460: 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f  r);.    fflush(o
7470: 75 74 29 3b 0a 0a 20 20 20 20 64 72 20 3d 20 64  ut);..    dr = d
7480: 5f 64 32 28 64 31 2c 64 32 29 3b 0a 20 20 20 20  _d2(d1,d2);.    
7490: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25  fprintf(out,"->%
74a0: 67 5c 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66  g\n",dr);.    ff
74b0: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 64  lush(out);.    d
74c0: 72 20 3d 20 30 2e 30 3b 20 63 6c 65 61 72 5f 74  r = 0.0; clear_t
74d0: 72 61 63 65 73 28 29 3b 0a 20 20 20 20 63 75 72  races();.    cur
74e0: 72 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20  rent_function = 
74f0: 28 76 6f 69 64 2a 29 20 26 64 5f 64 32 3b 20 64  (void*) &d_d2; d
7500: 72 20 3d 20 28 46 54 59 50 45 28 64 6f 75 62 6c  r = (FTYPE(doubl
7510: 65 2c 28 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65  e,(double,double
7520: 29 29 20 76 61 63 61 6c 6c 29 20 28 64 31 2c 64  )) vacall) (d1,d
7530: 32 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28  2);.    fprintf(
7540: 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 64 72 29  out,"->%g\n",dr)
7550: 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74  ;.    fflush(out
7560: 29 3b 0a 0a 20 20 20 20 64 72 20 3d 20 64 5f 64  );..    dr = d_d
7570: 34 28 64 31 2c 64 32 2c 64 33 2c 64 34 29 3b 0a  4(d1,d2,d3,d4);.
7580: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
7590: 22 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a 20 20  "->%g\n",dr);.  
75a0: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
75b0: 20 20 20 64 72 20 3d 20 30 2e 30 3b 20 63 6c 65     dr = 0.0; cle
75c0: 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20  ar_traces();.   
75d0: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
75e0: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 64 5f 64  n = (void*) &d_d
75f0: 34 3b 20 64 72 20 3d 20 28 46 54 59 50 45 28 64  4; dr = (FTYPE(d
7600: 6f 75 62 6c 65 2c 28 64 6f 75 62 6c 65 2c 64 6f  ouble,(double,do
7610: 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62  uble,double,doub
7620: 6c 65 29 29 20 76 61 63 61 6c 6c 29 20 28 64 31  le)) vacall) (d1
7630: 2c 64 32 2c 64 33 2c 64 34 29 3b 0a 20 20 20 20  ,d2,d3,d4);.    
7640: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25  fprintf(out,"->%
7650: 67 5c 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66  g\n",dr);.    ff
7660: 6c 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20  lush(out);..    
7670: 64 72 20 3d 20 64 5f 64 38 28 64 31 2c 64 32 2c  dr = d_d8(d1,d2,
7680: 64 33 2c 64 34 2c 64 35 2c 64 36 2c 64 37 2c 64  d3,d4,d5,d6,d7,d
7690: 38 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28  8);.    fprintf(
76a0: 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22 2c 64 72 29  out,"->%g\n",dr)
76b0: 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74  ;.    fflush(out
76c0: 29 3b 0a 20 20 20 20 64 72 20 3d 20 30 2e 30 3b  );.    dr = 0.0;
76d0: 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b   clear_traces();
76e0: 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e  .    current_fun
76f0: 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20  ction = (void*) 
7700: 26 64 5f 64 38 3b 20 64 72 20 3d 20 28 46 54 59  &d_d8; dr = (FTY
7710: 50 45 28 64 6f 75 62 6c 65 2c 28 64 6f 75 62 6c  PE(double,(doubl
7720: 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c  e,double,double,
7730: 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f  double,double,do
7740: 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62  uble,double,doub
7750: 6c 65 29 29 20 76 61 63 61 6c 6c 29 20 28 64 31  le)) vacall) (d1
7760: 2c 64 32 2c 64 33 2c 64 34 2c 64 35 2c 64 36 2c  ,d2,d3,d4,d5,d6,
7770: 64 37 2c 64 38 29 3b 0a 20 20 20 20 66 70 72 69  d7,d8);.    fpri
7780: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22  ntf(out,"->%g\n"
7790: 2c 64 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  ,dr);.    fflush
77a0: 28 6f 75 74 29 3b 0a 0a 20 20 20 20 64 72 20 3d  (out);..    dr =
77b0: 20 64 5f 64 31 36 28 64 31 2c 64 32 2c 64 33 2c   d_d16(d1,d2,d3,
77c0: 64 34 2c 64 35 2c 64 36 2c 64 37 2c 64 38 2c 64  d4,d5,d6,d7,d8,d
77d0: 39 2c 64 31 30 2c 64 31 31 2c 64 31 32 2c 64 31  9,d10,d11,d12,d1
77e0: 33 2c 64 31 34 2c 64 31 35 2c 64 31 36 29 3b 0a  3,d14,d15,d16);.
77f0: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
7800: 22 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a 20 20  "->%g\n",dr);.  
7810: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
7820: 20 20 20 64 72 20 3d 20 30 2e 30 3b 20 63 6c 65     dr = 0.0; cle
7830: 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20  ar_traces();.   
7840: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
7850: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 64 5f 64  n = (void*) &d_d
7860: 31 36 3b 20 64 72 20 3d 20 28 46 54 59 50 45 28  16; dr = (FTYPE(
7870: 64 6f 75 62 6c 65 2c 28 64 6f 75 62 6c 65 2c 64  double,(double,d
7880: 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75  ouble,double,dou
7890: 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c  ble,double,doubl
78a0: 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c  e,double,double,
78b0: 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f  double,double,do
78c0: 75 62 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62  uble,double,doub
78d0: 6c 65 2c 64 6f 75 62 6c 65 2c 64 6f 75 62 6c 65  le,double,double
78e0: 2c 64 6f 75 62 6c 65 29 29 20 76 61 63 61 6c 6c  ,double)) vacall
78f0: 29 20 28 64 31 2c 64 32 2c 64 33 2c 64 34 2c 64  ) (d1,d2,d3,d4,d
7900: 35 2c 64 36 2c 64 37 2c 64 38 2c 64 39 2c 64 31  5,d6,d7,d8,d9,d1
7910: 30 2c 64 31 31 2c 64 31 32 2c 64 31 33 2c 64 31  0,d11,d12,d13,d1
7920: 34 2c 64 31 35 2c 64 31 36 29 3b 0a 20 20 20 20  4,d15,d16);.    
7930: 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25  fprintf(out,"->%
7940: 67 5c 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66  g\n",dr);.    ff
7950: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 7d 0a 0a  lush(out);.  }..
7960: 20 20 2f 2a 20 70 6f 69 6e 74 65 72 20 74 65 73    /* pointer tes
7970: 74 73 20 2a 2f 0a 20 20 7b 20 76 6f 69 64 2a 20  ts */.  { void* 
7980: 76 70 72 3b 0a 0a 20 20 20 20 76 70 72 20 3d 20  vpr;..    vpr = 
7990: 76 70 5f 76 70 64 70 63 70 73 70 28 26 75 63 31  vp_vpdpcpsp(&uc1
79a0: 2c 26 64 32 2c 73 74 72 33 2c 26 49 34 29 3b 0a  ,&d2,str3,&I4);.
79b0: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
79c0: 22 2d 3e 30 78 25 6c 78 5c 6e 22 2c 28 6c 6f 6e  "->0x%lx\n",(lon
79d0: 67 29 76 70 72 29 3b 0a 20 20 20 20 66 66 6c 75  g)vpr);.    fflu
79e0: 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 76 70 72  sh(out);.    vpr
79f0: 20 3d 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63   = 0; clear_trac
7a00: 65 73 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e  es();.    curren
7a10: 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f  t_function = (vo
7a20: 69 64 2a 29 20 26 76 70 5f 76 70 64 70 63 70 73  id*) &vp_vpdpcps
7a30: 70 3b 20 76 70 72 20 3d 20 28 46 54 59 50 45 28  p; vpr = (FTYPE(
7a40: 76 6f 69 64 2a 2c 28 76 6f 69 64 2a 2c 64 6f 75  void*,(void*,dou
7a50: 62 6c 65 2a 2c 63 68 61 72 2a 2c 49 6e 74 2a 29  ble*,char*,Int*)
7a60: 29 20 76 61 63 61 6c 6c 29 20 28 26 75 63 31 2c  ) vacall) (&uc1,
7a70: 26 64 32 2c 73 74 72 33 2c 26 49 34 29 3b 0a 20  &d2,str3,&I4);. 
7a80: 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22     fprintf(out,"
7a90: 2d 3e 30 78 25 6c 78 5c 6e 22 2c 28 6c 6f 6e 67  ->0x%lx\n",(long
7aa0: 29 76 70 72 29 3b 0a 20 20 20 20 66 66 6c 75 73  )vpr);.    fflus
7ab0: 68 28 6f 75 74 29 3b 0a 20 20 7d 0a 0a 20 20 2f  h(out);.  }..  /
7ac0: 2a 20 6d 69 78 65 64 20 6e 75 6d 62 65 72 20 74  * mixed number t
7ad0: 65 73 74 73 20 2a 2f 0a 20 20 7b 20 75 63 68 61  ests */.  { ucha
7ae0: 72 20 75 63 72 3b 0a 20 20 20 20 75 73 68 6f 72  r ucr;.    ushor
7af0: 74 20 75 73 72 3b 0a 20 20 20 20 64 6f 75 62 6c  t usr;.    doubl
7b00: 65 20 64 72 3b 0a 23 69 66 64 65 66 20 48 41 56  e dr;.#ifdef HAV
7b10: 45 5f 4c 4f 4e 47 4c 4f 4e 47 0a 20 20 20 20 6c  E_LONGLONG.    l
7b20: 6f 6e 67 20 6c 6f 6e 67 20 6c 6c 72 3b 0a 23 65  ong long llr;.#e
7b30: 6e 64 69 66 0a 0a 20 20 20 20 75 63 72 20 3d 20  ndif..    ucr = 
7b40: 75 63 5f 75 63 73 69 6c 28 75 63 31 2c 75 73 32  uc_ucsil(uc1,us2
7b50: 2c 75 69 33 2c 75 6c 34 29 3b 0a 20 20 20 20 66  ,ui3,ul4);.    f
7b60: 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 75  printf(out,"->%u
7b70: 5c 6e 22 2c 75 63 72 29 3b 0a 20 20 20 20 66 66  \n",ucr);.    ff
7b80: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 75  lush(out);.    u
7b90: 63 72 20 3d 20 30 3b 20 63 6c 65 61 72 5f 74 72  cr = 0; clear_tr
7ba0: 61 63 65 73 28 29 3b 0a 20 20 20 20 63 75 72 72  aces();.    curr
7bb0: 65 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28  ent_function = (
7bc0: 76 6f 69 64 2a 29 20 26 75 63 5f 75 63 73 69 6c  void*) &uc_ucsil
7bd0: 3b 20 75 63 72 20 3d 20 28 46 54 59 50 45 28 75  ; ucr = (FTYPE(u
7be0: 63 68 61 72 2c 28 75 63 68 61 72 2c 75 73 68 6f  char,(uchar,usho
7bf0: 72 74 2c 75 69 6e 74 2c 75 6c 6f 6e 67 29 29 20  rt,uint,ulong)) 
7c00: 76 61 63 61 6c 6c 29 20 28 75 63 31 2c 75 73 32  vacall) (uc1,us2
7c10: 2c 75 69 33 2c 75 6c 34 29 3b 0a 20 20 20 20 66  ,ui3,ul4);.    f
7c20: 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 75  printf(out,"->%u
7c30: 5c 6e 22 2c 75 63 72 29 3b 0a 20 20 20 20 66 66  \n",ucr);.    ff
7c40: 6c 75 73 68 28 6f 75 74 29 3b 0a 0a 20 20 20 20  lush(out);..    
7c50: 64 72 20 3d 20 64 5f 69 69 64 64 28 69 31 2c 69  dr = d_iidd(i1,i
7c60: 32 2c 64 33 2c 64 34 29 3b 0a 20 20 20 20 66 70  2,d3,d4);.    fp
7c70: 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c  rintf(out,"->%g\
7c80: 6e 22 2c 64 72 29 3b 0a 20 20 20 20 66 66 6c 75  n",dr);.    fflu
7c90: 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 64 72 20  sh(out);.    dr 
7ca0: 3d 20 30 2e 30 3b 20 63 6c 65 61 72 5f 74 72 61  = 0.0; clear_tra
7cb0: 63 65 73 28 29 3b 0a 20 20 20 20 63 75 72 72 65  ces();.    curre
7cc0: 6e 74 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76  nt_function = (v
7cd0: 6f 69 64 2a 29 20 26 64 5f 69 69 64 64 3b 20 64  oid*) &d_iidd; d
7ce0: 72 20 3d 20 28 46 54 59 50 45 28 64 6f 75 62 6c  r = (FTYPE(doubl
7cf0: 65 2c 28 69 6e 74 2c 69 6e 74 2c 64 6f 75 62 6c  e,(int,int,doubl
7d00: 65 2c 64 6f 75 62 6c 65 29 29 20 76 61 63 61 6c  e,double)) vacal
7d10: 6c 29 20 28 69 31 2c 69 32 2c 64 33 2c 64 34 29  l) (i1,i2,d3,d4)
7d20: 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75  ;.    fprintf(ou
7d30: 74 2c 22 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a  t,"->%g\n",dr);.
7d40: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
7d50: 0a 0a 20 20 20 20 64 72 20 3d 20 64 5f 69 64 69  ..    dr = d_idi
7d60: 64 28 69 31 2c 64 32 2c 69 33 2c 64 34 29 3b 0a  d(i1,d2,i3,d4);.
7d70: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
7d80: 22 2d 3e 25 67 5c 6e 22 2c 64 72 29 3b 0a 20 20  "->%g\n",dr);.  
7d90: 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20    fflush(out);. 
7da0: 20 20 20 64 72 20 3d 20 30 2e 30 3b 20 63 6c 65     dr = 0.0; cle
7db0: 61 72 5f 74 72 61 63 65 73 28 29 3b 0a 20 20 20  ar_traces();.   
7dc0: 20 63 75 72 72 65 6e 74 5f 66 75 6e 63 74 69 6f   current_functio
7dd0: 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26 64 5f 69  n = (void*) &d_i
7de0: 64 69 64 3b 20 64 72 20 3d 20 28 46 54 59 50 45  did; dr = (FTYPE
7df0: 28 64 6f 75 62 6c 65 2c 28 69 6e 74 2c 64 6f 75  (double,(int,dou
7e00: 62 6c 65 2c 69 6e 74 2c 64 6f 75 62 6c 65 29 29  ble,int,double))
7e10: 20 76 61 63 61 6c 6c 29 20 28 69 31 2c 64 32 2c   vacall) (i1,d2,
7e20: 69 33 2c 64 34 29 3b 0a 20 20 20 20 66 70 72 69  i3,d4);.    fpri
7e30: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 67 5c 6e 22  ntf(out,"->%g\n"
7e40: 2c 64 72 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  ,dr);.    fflush
7e50: 28 6f 75 74 29 3b 0a 0a 20 20 20 20 75 73 72 20  (out);..    usr 
7e60: 3d 20 75 73 5f 63 64 63 64 28 63 31 2c 64 32 2c  = us_cdcd(c1,d2,
7e70: 63 33 2c 64 34 29 3b 0a 20 20 20 20 66 70 72 69  c3,d4);.    fpri
7e80: 6e 74 66 28 6f 75 74 2c 22 2d 3e 25 75 5c 6e 22  ntf(out,"->%u\n"
7e90: 2c 75 73 72 29 3b 0a 20 20 20 20 66 66 6c 75 73  ,usr);.    fflus
7ea0: 68 28 6f 75 74 29 3b 0a 20 20 20 20 75 73 72 20  h(out);.    usr 
7eb0: 3d 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65  = 0; clear_trace
7ec0: 73 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74  s();.    current
7ed0: 5f 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69  _function = (voi
7ee0: 64 2a 29 20 26 75 73 5f 63 64 63 64 3b 20 75 73  d*) &us_cdcd; us
7ef0: 72 20 3d 20 28 46 54 59 50 45 28 75 73 68 6f 72  r = (FTYPE(ushor
7f00: 74 2c 28 63 68 61 72 2c 64 6f 75 62 6c 65 2c 63  t,(char,double,c
7f10: 68 61 72 2c 64 6f 75 62 6c 65 29 29 20 76 61 63  har,double)) vac
7f20: 61 6c 6c 29 20 28 63 31 2c 64 32 2c 63 33 2c 64  all) (c1,d2,c3,d
7f30: 34 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28  4);.    fprintf(
7f40: 6f 75 74 2c 22 2d 3e 25 75 5c 6e 22 2c 75 73 72  out,"->%u\n",usr
7f50: 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75  );.    fflush(ou
7f60: 74 29 3b 0a 0a 23 69 66 64 65 66 20 48 41 56 45  t);..#ifdef HAVE
7f70: 5f 4c 4f 4e 47 4c 4f 4e 47 0a 20 20 20 20 6c 6c  _LONGLONG.    ll
7f80: 72 20 3d 20 6c 6c 5f 66 6c 6c 69 28 66 31 33 2c  r = ll_flli(f13,
7f90: 6c 6c 31 2c 69 31 33 29 3b 0a 20 20 20 20 66 70  ll1,i13);.    fp
7fa0: 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 30 78 25  rintf(out,"->0x%
7fb0: 6c 78 25 30 38 6c 78 5c 6e 22 2c 28 6c 6f 6e 67  lx%08lx\n",(long
7fc0: 29 28 6c 6c 72 3e 3e 33 32 29 2c 28 6c 6f 6e 67  )(llr>>32),(long
7fd0: 29 28 6c 6c 72 26 30 78 66 66 66 66 66 66 66 66  )(llr&0xffffffff
7fe0: 29 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f  ));.    fflush(o
7ff0: 75 74 29 3b 0a 20 20 20 20 6c 6c 72 20 3d 20 30  ut);.    llr = 0
8000: 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29  ; clear_traces()
8010: 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75  ;.    current_fu
8020: 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29  nction = (void*)
8030: 20 26 6c 6c 5f 66 6c 6c 69 3b 20 6c 6c 72 20 3d   &ll_flli; llr =
8040: 20 28 46 54 59 50 45 28 6c 6f 6e 67 20 6c 6f 6e   (FTYPE(long lon
8050: 67 2c 28 66 6c 6f 61 74 2c 6c 6f 6e 67 20 6c 6f  g,(float,long lo
8060: 6e 67 2c 69 6e 74 29 29 20 76 61 63 61 6c 6c 29  ng,int)) vacall)
8070: 20 28 66 31 33 2c 6c 6c 31 2c 69 31 33 29 3b 0a   (f13,ll1,i13);.
8080: 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c      fprintf(out,
8090: 22 2d 3e 30 78 25 6c 78 25 30 38 6c 78 5c 6e 22  "->0x%lx%08lx\n"
80a0: 2c 28 6c 6f 6e 67 29 28 6c 6c 72 3e 3e 33 32 29  ,(long)(llr>>32)
80b0: 2c 28 6c 6f 6e 67 29 28 6c 6c 72 26 30 78 66 66  ,(long)(llr&0xff
80c0: 66 66 66 66 66 66 29 29 3b 0a 20 20 20 20 66 66  ffffff));.    ff
80d0: 6c 75 73 68 28 6f 75 74 29 3b 0a 23 65 6e 64 69  lush(out);.#endi
80e0: 66 0a 20 20 7d 0a 0a 23 69 66 6e 64 65 66 20 53  f.  }..#ifndef S
80f0: 4b 49 50 5f 53 54 52 55 43 54 53 0a 20 20 2f 2a  KIP_STRUCTS.  /*
8100: 20 73 74 72 75 63 74 75 72 65 20 74 65 73 74 73   structure tests
8110: 20 2a 2f 0a 20 20 7b 20 49 6e 74 20 49 72 3b 0a   */.  { Int Ir;.
8120: 20 20 20 20 43 68 61 72 20 43 72 3b 0a 20 20 20      Char Cr;.   
8130: 20 46 6c 6f 61 74 20 46 72 3b 0a 20 20 20 20 44   Float Fr;.    D
8140: 6f 75 62 6c 65 20 44 72 3b 0a 20 20 20 20 4a 20  ouble Dr;.    J 
8150: 4a 72 3b 0a 20 20 20 20 54 20 54 72 3b 0a 20 20  Jr;.    T Tr;.  
8160: 20 20 58 20 58 72 3b 0a 0a 20 20 20 20 49 72 20    X Xr;..    Ir 
8170: 3d 20 49 5f 49 49 49 28 49 31 2c 49 32 2c 49 33  = I_III(I1,I2,I3
8180: 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f  );.    fprintf(o
8190: 75 74 2c 22 2d 3e 7b 25 64 7d 5c 6e 22 2c 49 72  ut,"->{%d}\n",Ir
81a0: 2e 78 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  .x);.    fflush(
81b0: 6f 75 74 29 3b 0a 20 20 20 20 49 72 2e 78 20 3d  out);.    Ir.x =
81c0: 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73   0; clear_traces
81d0: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
81e0: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
81f0: 2a 29 20 26 49 5f 49 49 49 3b 20 49 72 20 3d 20  *) &I_III; Ir = 
8200: 28 46 54 59 50 45 28 49 6e 74 2c 28 49 6e 74 2c  (FTYPE(Int,(Int,
8210: 49 6e 74 2c 49 6e 74 29 29 20 76 61 63 61 6c 6c  Int,Int)) vacall
8220: 29 20 28 49 31 2c 49 32 2c 49 33 29 3b 0a 20 20  ) (I1,I2,I3);.  
8230: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d    fprintf(out,"-
8240: 3e 7b 25 64 7d 5c 6e 22 2c 49 72 2e 78 29 3b 0a  >{%d}\n",Ir.x);.
8250: 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b      fflush(out);
8260: 0a 0a 23 69 66 6e 64 65 66 20 53 4b 49 50 5f 45  ..#ifndef SKIP_E
8270: 58 54 52 41 5f 53 54 52 55 43 54 53 0a 20 20 20  XTRA_STRUCTS.   
8280: 20 43 72 20 3d 20 43 5f 43 64 43 28 43 31 2c 64   Cr = C_CdC(C1,d
8290: 32 2c 43 33 29 3b 0a 20 20 20 20 66 70 72 69 6e  2,C3);.    fprin
82a0: 74 66 28 6f 75 74 2c 22 2d 3e 7b 27 25 63 27 7d  tf(out,"->{'%c'}
82b0: 5c 6e 22 2c 43 72 2e 78 29 3b 0a 20 20 20 20 66  \n",Cr.x);.    f
82c0: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20  flush(out);.    
82d0: 43 72 2e 78 20 3d 20 27 5c 30 27 3b 20 63 6c 65  Cr.x = '\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 43 5f 43  n = (void*) &C_C
8310: 64 43 3b 20 43 72 20 3d 20 28 46 54 59 50 45 28  dC; Cr = (FTYPE(
8320: 43 68 61 72 2c 28 43 68 61 72 2c 64 6f 75 62 6c  Char,(Char,doubl
8330: 65 2c 43 68 61 72 29 29 20 76 61 63 61 6c 6c 29  e,Char)) vacall)
8340: 20 28 43 31 2c 64 32 2c 43 33 29 3b 0a 20 20 20   (C1,d2,C3);.   
8350: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
8360: 7b 27 25 63 27 7d 5c 6e 22 2c 43 72 2e 78 29 3b  {'%c'}\n",Cr.x);
8370: 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29  .    fflush(out)
8380: 3b 0a 0a 20 20 20 20 46 72 20 3d 20 46 5f 46 66  ;..    Fr = F_Ff
8390: 64 28 46 31 2c 66 32 2c 64 33 29 3b 0a 20 20 20  d(F1,f2,d3);.   
83a0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
83b0: 7b 25 67 7d 5c 6e 22 2c 46 72 2e 78 29 3b 0a 20  {%g}\n",Fr.x);. 
83c0: 20 20 20 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a     fflush(out);.
83d0: 20 20 20 20 46 72 2e 78 20 3d 20 30 2e 30 3b 20      Fr.x = 0.0; 
83e0: 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a  clear_traces();.
83f0: 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63      current_func
8400: 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26  tion = (void*) &
8410: 46 5f 46 66 64 3b 20 46 72 20 3d 20 28 46 54 59  F_Ffd; Fr = (FTY
8420: 50 45 28 46 6c 6f 61 74 2c 28 46 6c 6f 61 74 2c  PE(Float,(Float,
8430: 66 6c 6f 61 74 2c 64 6f 75 62 6c 65 29 29 20 76  float,double)) v
8440: 61 63 61 6c 6c 29 20 28 46 31 2c 66 32 2c 64 33  acall) (F1,f2,d3
8450: 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f  );.    fprintf(o
8460: 75 74 2c 22 2d 3e 7b 25 67 7d 5c 6e 22 2c 46 72  ut,"->{%g}\n",Fr
8470: 2e 78 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28  .x);.    fflush(
8480: 6f 75 74 29 3b 0a 0a 20 20 20 20 44 72 20 3d 20  out);..    Dr = 
8490: 44 5f 66 44 64 28 66 31 2c 44 32 2c 64 33 29 3b  D_fDd(f1,D2,d3);
84a0: 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f 75 74  .    fprintf(out
84b0: 2c 22 2d 3e 7b 25 67 7d 5c 6e 22 2c 44 72 2e 78  ,"->{%g}\n",Dr.x
84c0: 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75  );.    fflush(ou
84d0: 74 29 3b 0a 20 20 20 20 44 72 2e 78 20 3d 20 30  t);.    Dr.x = 0
84e0: 2e 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73  .0; clear_traces
84f0: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
8500: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
8510: 2a 29 20 26 44 5f 66 44 64 3b 20 44 72 20 3d 20  *) &D_fDd; Dr = 
8520: 28 46 54 59 50 45 28 44 6f 75 62 6c 65 2c 28 66  (FTYPE(Double,(f
8530: 6c 6f 61 74 2c 44 6f 75 62 6c 65 2c 64 6f 75 62  loat,Double,doub
8540: 6c 65 29 29 20 76 61 63 61 6c 6c 29 20 28 66 31  le)) vacall) (f1
8550: 2c 44 32 2c 64 33 29 3b 0a 20 20 20 20 66 70 72  ,D2,d3);.    fpr
8560: 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 7b 25 67 7d  intf(out,"->{%g}
8570: 5c 6e 22 2c 44 72 2e 78 29 3b 0a 20 20 20 20 66  \n",Dr.x);.    f
8580: 66 6c 75 73 68 28 6f 75 74 29 3b 0a 23 65 6e 64  flush(out);.#end
8590: 69 66 0a 0a 20 20 20 20 4a 72 20 3d 20 4a 5f 4a  if..    Jr = J_J
85a0: 69 4a 28 4a 31 2c 69 32 2c 4a 32 29 3b 0a 20 20  iJ(J1,i2,J2);.  
85b0: 20 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d    fprintf(out,"-
85c0: 3e 7b 25 6c 64 2c 25 6c 64 7d 5c 6e 22 2c 4a 72  >{%ld,%ld}\n",Jr
85d0: 2e 6c 31 2c 4a 72 2e 6c 32 29 3b 0a 20 20 20 20  .l1,Jr.l2);.    
85e0: 66 66 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20  fflush(out);.   
85f0: 20 4a 72 2e 6c 31 20 3d 20 4a 72 2e 6c 32 20 3d   Jr.l1 = Jr.l2 =
8600: 20 30 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73   0; clear_traces
8610: 28 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f  ();.    current_
8620: 66 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64  function = (void
8630: 2a 29 20 26 4a 5f 4a 69 4a 3b 20 4a 72 20 3d 20  *) &J_JiJ; Jr = 
8640: 28 46 54 59 50 45 28 4a 2c 28 4a 2c 69 6e 74 2c  (FTYPE(J,(J,int,
8650: 4a 29 29 20 76 61 63 61 6c 6c 29 20 28 4a 31 2c  J)) vacall) (J1,
8660: 69 32 2c 4a 32 29 3b 0a 20 20 20 20 66 70 72 69  i2,J2);.    fpri
8670: 6e 74 66 28 6f 75 74 2c 22 2d 3e 7b 25 6c 64 2c  ntf(out,"->{%ld,
8680: 25 6c 64 7d 5c 6e 22 2c 4a 72 2e 6c 31 2c 4a 72  %ld}\n",Jr.l1,Jr
8690: 2e 6c 32 29 3b 0a 20 20 20 20 66 66 6c 75 73 68  .l2);.    fflush
86a0: 28 6f 75 74 29 3b 0a 0a 23 69 66 6e 64 65 66 20  (out);..#ifndef 
86b0: 53 4b 49 50 5f 45 58 54 52 41 5f 53 54 52 55 43  SKIP_EXTRA_STRUC
86c0: 54 53 0a 23 69 66 6e 64 65 66 20 53 4b 49 50 5f  TS.#ifndef SKIP_
86d0: 54 0a 20 20 20 20 54 72 20 3d 20 54 5f 54 63 54  T.    Tr = T_TcT
86e0: 28 54 31 2c 27 20 27 2c 54 32 29 3b 0a 20 20 20  (T1,' ',T2);.   
86f0: 20 66 70 72 69 6e 74 66 28 6f 75 74 2c 22 2d 3e   fprintf(out,"->
8700: 7b 5c 22 25 63 25 63 25 63 5c 22 7d 5c 6e 22 2c  {\"%c%c%c\"}\n",
8710: 54 72 2e 63 5b 30 5d 2c 54 72 2e 63 5b 31 5d 2c  Tr.c[0],Tr.c[1],
8720: 54 72 2e 63 5b 32 5d 29 3b 0a 20 20 20 20 66 66  Tr.c[2]);.    ff
8730: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 54  lush(out);.    T
8740: 72 2e 63 5b 30 5d 20 3d 20 54 72 2e 63 5b 31 5d  r.c[0] = Tr.c[1]
8750: 20 3d 20 54 72 2e 63 5b 32 5d 20 3d 20 30 3b 20   = Tr.c[2] = 0; 
8760: 63 6c 65 61 72 5f 74 72 61 63 65 73 28 29 3b 0a  clear_traces();.
8770: 20 20 20 20 63 75 72 72 65 6e 74 5f 66 75 6e 63      current_func
8780: 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a 29 20 26  tion = (void*) &
8790: 54 5f 54 63 54 3b 20 54 72 20 3d 20 28 46 54 59  T_TcT; Tr = (FTY
87a0: 50 45 28 54 2c 28 54 2c 63 68 61 72 2c 54 29 29  PE(T,(T,char,T))
87b0: 20 76 61 63 61 6c 6c 29 20 28 54 31 2c 27 20 27   vacall) (T1,' '
87c0: 2c 54 32 29 3b 0a 20 20 20 20 66 70 72 69 6e 74  ,T2);.    fprint
87d0: 66 28 6f 75 74 2c 22 2d 3e 7b 5c 22 25 63 25 63  f(out,"->{\"%c%c
87e0: 25 63 5c 22 7d 5c 6e 22 2c 54 72 2e 63 5b 30 5d  %c\"}\n",Tr.c[0]
87f0: 2c 54 72 2e 63 5b 31 5d 2c 54 72 2e 63 5b 32 5d  ,Tr.c[1],Tr.c[2]
8800: 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f 75  );.    fflush(ou
8810: 74 29 3b 0a 23 65 6e 64 69 66 0a 0a 23 69 66 6e  t);.#endif..#ifn
8820: 64 65 66 20 53 4b 49 50 5f 58 0a 20 20 20 20 58  def SKIP_X.    X
8830: 72 20 3d 20 58 5f 42 63 64 42 28 42 31 2c 63 32  r = X_BcdB(B1,c2
8840: 2c 64 33 2c 42 32 29 3b 0a 20 20 20 20 66 70 72  ,d3,B2);.    fpr
8850: 69 6e 74 66 28 6f 75 74 2c 22 2d 3e 7b 5c 22 25  intf(out,"->{\"%
8860: 73 5c 22 2c 27 25 63 27 7d 5c 6e 22 2c 58 72 2e  s\",'%c'}\n",Xr.
8870: 63 2c 58 72 2e 63 31 29 3b 0a 20 20 20 20 66 66  c,Xr.c1);.    ff
8880: 6c 75 73 68 28 6f 75 74 29 3b 0a 20 20 20 20 58  lush(out);.    X
8890: 72 2e 63 5b 30 5d 3d 58 72 2e 63 31 3d 27 5c 30  r.c[0]=Xr.c1='\0
88a0: 27 3b 20 63 6c 65 61 72 5f 74 72 61 63 65 73 28  '; clear_traces(
88b0: 29 3b 0a 20 20 20 20 63 75 72 72 65 6e 74 5f 66  );.    current_f
88c0: 75 6e 63 74 69 6f 6e 20 3d 20 28 76 6f 69 64 2a  unction = (void*
88d0: 29 20 26 58 5f 42 63 64 42 3b 20 58 72 20 3d 20  ) &X_BcdB; Xr = 
88e0: 28 46 54 59 50 45 28 58 2c 28 42 2c 63 68 61 72  (FTYPE(X,(B,char
88f0: 2c 64 6f 75 62 6c 65 2c 42 29 29 20 76 61 63 61  ,double,B)) vaca
8900: 6c 6c 29 20 28 42 31 2c 63 32 2c 64 33 2c 42 32  ll) (B1,c2,d3,B2
8910: 29 3b 0a 20 20 20 20 66 70 72 69 6e 74 66 28 6f  );.    fprintf(o
8920: 75 74 2c 22 2d 3e 7b 5c 22 25 73 5c 22 2c 27 25  ut,"->{\"%s\",'%
8930: 63 27 7d 5c 6e 22 2c 58 72 2e 63 2c 58 72 2e 63  c'}\n",Xr.c,Xr.c
8940: 31 29 3b 0a 20 20 20 20 66 66 6c 75 73 68 28 6f  1);.    fflush(o
8950: 75 74 29 3b 0a 23 65 6e 64 69 66 0a 23 65 6e 64  ut);.#endif.#end
8960: 69 66 0a 20 20 7d 0a 23 65 6e 64 69 66 0a 0a 20  if.  }.#endif.. 
8970: 20 65 78 69 74 28 30 29 3b 0a 7d 0a               exit(0);.}.