[comp.sys.transputer] Meiko's mcc bug ?

spahni@cui.unige.ch (SPAHNI Stephane) (08/16/90)

I have a problem with the "mcc" compiler. The short program below crash
with an Address Error. Has anyone already had a similar problem ? Or do
I write something incorrect ? The include files referenced contain only
definition of structures and macros, no code. "ssap.h" is from the 
ISODE software (rel 6.0). Note that if I cut either part I or part II, the
program works !
Stephane Spahni
spahni@cuisun.unige.ch

Execution:

cuisun12% mcc -o bug.ex8 bug.c -I/cuisun12/usr/isode-6.0/h -lcs -lcsn
cuisun12% mrun bug.ex8
[node`_csn] register dump at iptr 0x80033dd0 (0x17cb4) wptr 0x80038a8d (0x2ed) (address error)
[node] Address Error


C-Program:

#include <stdio.h>
#include <csn/csn.h>
#include "ssap.h"

main (argc, argv)
   int argc;
   char **argv;
{
/* *** PART 1: *** */
int                 fct, par1, par2, rep, rep2;
int                *p_i;
long               *p_k;
struct QOStype      qos;
struct QOStype     *pqos;
struct SSAPref      ssapref;
struct SSAPref     *pssapref;
char                *p1;
char                *p2;
int                  i;
fd_set               fds1;
fd_set              *fds2;
/* *** END OF PART 1 *** */
/* *** PART 2: *** */
struct SSAPrelease   ssaprelease;
struct SSAPrelease  *pssaprelease;
struct SSAPtoken     ssaptoken;
struct SSAPtoken    *pssaptoken;
struct SSAPsync      ssapsync;
struct SSAPsync     *pssapsync;
struct SSAPreport    ssapreport;
struct SSAPreport   *pssapreport;
struct SSAPfinish    ssapfinish;
struct SSAPfinish   *pssapfinish;
struct SSAPabort     ssapabort;
struct SSAPabort    *pssapabort;
struct SSAPactid     ssapactid;
struct SSAPactid    *pssapactid;
/* *** END OF PART 2 *** */
struct SSAPstart     ssapstart;
struct SSAPstart    *pssapstart;
struct SSAPconnect   ssapconnect;
struct SSAPconnect  *pssapconnect;
struct SSAPactivity  ssapactivity;
struct SSAPactivity *pssapactivity;
struct SSAPdata      ssapdata;
struct SSAPdata     *pssapdata; 
struct qbuf         *pb;
struct qbuf         *qb;

   printf ("Done.\n");

   exit(0);
}