1  extern void abort (void);
       2  
       3  void
       4  __cdecl
       5  lib2foocdecl(int junk1, int* junk2);
       6  
       7  void
       8  __stdcall
       9  lib2foostdcall(int junk1, int* junk2);
      10  
      11  void
      12  __fastcall
      13  lib2foofastcall(int junk1, int* junk2);
      14  
      15  void
      16  __cdecl
      17  lib1foocdecl(int junk1, int* junk2)
      18  {
      19      lib2foocdecl(junk1, junk2);
      20  }
      21  
      22  void
      23  __stdcall
      24  lib1foostdcall(int junk1, int* junk2)
      25  {
      26      lib2foostdcall(junk1, junk2);
      27  }
      28  
      29  void
      30  __fastcall
      31  lib1foofastcall(int junk1, int* junk2)
      32  {
      33      lib2foofastcall(junk1, junk2);
      34  }
      35  
      36  int main()
      37  {
      38    int junk[3];
      39    lib1foofastcall (1, &junk[0]);
      40    lib1foostdcall (2, &junk[1]);
      41    lib1foocdecl (3, &junk[2]);
      42    if (junk[1] != 2 || junk[0] != 1 || junk[2] != 3)
      43      abort ();
      44  
      45    return 0;
      46  }
      47