Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!shelby!apple!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!ZEUS.CRAY.COM!wdp
From: wdp@ZEUS.CRAY.COM (Walter Poxon)
Newsgroups: gnu.gcc.bug
Subject: bug report
Message-ID: <8909291915.AA09113@zeus.cray.com>
Date: 29 Sep 89 19:15:18 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 711



========================================================================

We are using GCC 1.36 on Sun-3/50s under SunOS 3.5.  Our compiler is
configured thusly:

    aux-output.c:   symbolic link to ./config/out-m68k.c
    config.h:       symbolic link to ./config/xm-m68k.h
    md:             symbolic link to ./config/m68k.md
    tm.h:           symbolic link to ./config/tm-sun3os3nf.h

While compiling the following source code, with no command-line
parameters to gcc other than "-c", we get the error
    gcc: Program cc1 got fatal signal 6.

The preprocessed source file follows my .signature.
It is some rot generated by a 4GL prepreocessor.

--
Walter Poxon			Domain:  wdp@cray.com
Cray Research			Old style:  wdp%cray.com@uc.msc.umn.edu
1440 Northland Dr.		UUCP:  uunet!cray!wdp
Mendota Hts, MN  55120  USA	Telephone:  +1 612 681 3126

========================================================================

extern	struct	_iobuf {
	int	_cnt;
	unsigned char *_ptr;
	unsigned char *_base;
	int	_bufsiz;
	short	_flag;
	char	_file;		 
} _iob[];
extern struct _iobuf 	*fopen();
extern struct _iobuf 	*fdopen();
extern struct _iobuf 	*freopen();
extern struct _iobuf 	*popen();
extern struct _iobuf 	*tmpfile();
extern long	ftell();
extern char	*fgets();
extern char	*gets();
extern char	*ctermid();
extern char	*cuserid();
extern char	*tempnam();
extern char	*tmpnam();
extern char
	*strcpy(),
	*strncpy(),
	*strcat(),
	*strncat(),
	*strchr(),
	*strrchr(),
	*strpbrk(),
	*strtok();
extern int
	strcmp(),
	strncmp(),
	strlen(),
	strspn(),
	strcspn();
typedef struct tir_list {
	char tir[10];
	char from[30];
	char to[30];
	char severity[15];
	char status[15];
	char open_date[15];
	char change_date[15];
	char product[20];
	char opsys[20];
	char machine[15];
	char prj[15];
	char spr[10];
	char des[10];
	char info[10];
	char res[10];
	char found[20];
	char fixed[20];
	struct tir_list *next;
	struct tir_list *prev;
} tirlist_t;
extern int errno;
struct   sqlca
         {
           char    sqlcaid[8];
           long    sqlabc;
           long    sqlcode;
         struct
           {
             unsigned short sqlerrml;
             char           sqlerrmc[70];
           } sqlerrm;
           char    sqlerrp[8];
           long    sqlerrd[6];
           char    sqlwarn[8];
           char    sqlext[8];
         };
         struct sqlca sqlca
         ;
static struct {
unsigned int    sq001N;
unsigned char  *sq001V[4];
unsigned int    sq001L[4];
unsigned short  sq001T[4];
unsigned short *sq001I[4];
} sq001 = {4};
static struct {
unsigned int    sq002N;
unsigned char  *sq002V[1];
unsigned int    sq002L[1];
unsigned short  sq002T[1];
unsigned short *sq002I[1];
} sq002 = {1};
static struct {
unsigned int    sq003N;
unsigned char  *sq003V[1];
unsigned int    sq003L[1];
unsigned short  sq003T[1];
unsigned short *sq003I[1];
} sq003 = {1};
static struct {
unsigned int    sq004N;
unsigned char  *sq004V[1];
unsigned int    sq004L[1];
unsigned short  sq004T[1];
unsigned short *sq004I[1];
} sq004 = {1};
static char sq005[404] =
"UPDATE OIR SET CHANGE_DATE=SYSDATE,STATUS=:b1:i1,SERIAL_NUM=:b2:i2,REPORT_BY=:b3:i3,ASSIGN_TO=:b4:i4,CAUSE=:b5:i5,OS_NAME=:b6:i6,OS_VERS=:b7:i7,CORE=:b8:i8,VENDOR=:b9:i9,DEVICE=:b10:i10,TIM_OF_CALL=TO_DATE(:b11:i11,'MM/DD/YY HH24:MI:SS'),TIM_OF_ACK=TO_DA




TE(:b12:i12,'MM/DD/YY HH24:MI:SS'),TIM_ON_SITE=TO_DATE(:b13:i13,'MM/DD/YY HH24:MI:SS'),DESCRIPTION=:b14:i14,RESOLUTION=:b15:i15 WHERE OIR_NUMBER=:b16"
;
static struct {
unsigned int    sq006N;
unsigned char  *sq006V[16];
unsigned int    sq006L[16];
unsigned short  sq006T[16];
unsigned short *sq006I[16];
} sq006 = {16};
static struct {
unsigned int    sq007N;
unsigned char  *sq007V[1];
unsigned int    sq007L[1];
unsigned short  sq007T[1];
unsigned short *sq007I[1];
} sq007 = {1};
static struct {
unsigned int    sq008N;
unsigned char  *sq008V[1];
unsigned int    sq008L[1];
unsigned short  sq008T[1];
unsigned short *sq008I[1];
} sq008 = {1};
static char sq009[31] =
"SELECT MAX(OIR_NUMBER)FROM OIR"
;
static struct {
unsigned int    sq010N;
unsigned char  *sq010V[1];
unsigned int    sq010L[1];
unsigned short  sq010T[1];
unsigned short *sq010I[1];
} sq010 = {1};
static struct {
unsigned int    sq011N;
unsigned char  *sq011V[1];
unsigned int    sq011L[1];
unsigned short  sq011T[1];
unsigned short *sq011I[1];
} sq011 = {1};
static char sq012[77] =
"INSERT INTO OIR(OIR_NUMBER,OPEN_DATE,CHANGE_DATE)VALUES(:b1,SYSDATE,SYSDATE)"
;
static struct {
unsigned int    sq013N;
unsigned char  *sq013V[1];
unsigned int    sq013L[1];
unsigned short  sq013T[1];
unsigned short *sq013I[1];
} sq013 = {1};
static struct {
unsigned int    sq014N;
unsigned char  *sq014V[1];
unsigned int    sq014L[1];
unsigned short  sq014T[1];
unsigned short *sq014I[1];
} sq014 = {1};
static struct {
unsigned int    sq015N;
unsigned char  *sq015V[1];
unsigned int    sq015L[1];
unsigned short  sq015T[1];
unsigned short *sq015I[1];
} sq015 = {1};
static char sq016[37] =
"DELETE FROM OIR WHERE OIR_NUMBER=:b1"
;
static struct {
unsigned int    sq017N;
unsigned char  *sq017V[1];
unsigned int    sq017L[1];
unsigned short  sq017T[1];
unsigned short *sq017I[1];
} sq017 = {1};
static struct {
unsigned int    sq018N;
unsigned char  *sq018V[1];
unsigned int    sq018L[1];
unsigned short  sq018T[1];
unsigned short *sq018I[1];
} sq018 = {1};
static int SQLTM[8];
static int sqlcun[4] = {
0,0,0,0};
static int sqlusi[1] = {
0};
static unsigned int sqlami = 0;
static int SQLBT0 = 1;
static int SQLBT1 = 2;
static int SQLBT2 = 4;
static int SQLBT3 = 9;
static unsigned int sqlvsn = 10110;
extern    sqlab2();
extern    sqlad2();
extern    sqlbs2();
extern    sqlcom();
extern    sqlexe();
extern    sqlfch();
extern    sqllo2();
extern    sqlopn();
extern    sqlosq();
extern    sqlrol();
extern    sqlsca();
extern    sqlscc();
extern    sqlsch();
extern    sqltfl();
extern    sqlwnr();
int
oconnect()
{
struct {
  unsigned short len;
  unsigned char arr[20];
  } login;
struct {
  unsigned short len;
  unsigned char arr[20];
  } pw;
  char *oracle_error();
  void rollback();
  setenv("TWO_TASK", "t:codd");
  strcpy((login.arr) ,  "oir" );
  strcpy((pw.arr) ,    "oir" );
  (login.len = strlen(login.arr)) ;
  (pw.len = strlen(pw.arr)) ;
sqlsca(&sqlca);
sq001.sq001V[0] = (unsigned char *)&login.len;
sq001.sq001L[0] = (unsigned int)22;
sq001.sq001T[0] = (unsigned short)9;
sq001.sq001I[0] = (unsigned short *)0;
sq001.sq001V[1] = (unsigned char *)&pw.len;
sq001.sq001L[1] = (unsigned int)22;
sq001.sq001T[1] = (unsigned short)9;
sq001.sq001I[1] = (unsigned short *)0;
sq001.sq001T[2] = (unsigned short)10;
sq001.sq001T[3] = (unsigned short)10;
SQLTM[0] = (int)0;
SQLTM[1] = (int)10;
sqllo2(
  &sq001.sq001N,sq001.sq001V,sq001.sq001L,sq001.sq001T,
  &sqlami, &SQLTM[0], &SQLTM[1], &sqlvsn);
if (sqlca.sqlcode < 0)  goto o_error;
  return 0;
o_error:
  oracle_error();
  rollback();
  sqlca.sqlcode = 0;
  return 1;
}
char *
  oracle_error()
{
  static char errorm[256];
  sprintf(errorm, "%s (%d)", sqlca.sqlerrm.sqlerrmc, -sqlca.sqlcode);
  fprintf((&_iob[2]) ,"%s\n",errorm);
  return errorm;
}
extern int errno;
hangup()
{
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq002.sq002T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq002.sq002N, sq002.sq002V,
  sq002.sq002L, sq002.sq002T, sq002.sq002I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
SQLTM[0] = (int)1;
sqlcom(&SQLTM[0]);
  sqlca.sqlcode = 0;
  return 0;
}
void rollback()
{
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq003.sq003T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq003.sq003N, sq003.sq003V,
  sq003.sq003L, sq003.sq003T, sq003.sq003I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
SQLTM[0] = (int)0;
sqlrol(&SQLTM[0]);
}
char *
  update_oir(oir,stat,sn,report,assign,caus,name,vers,corefile,
             vend,dev,call,ack,site,des,res)
char *oir,*stat,*sn,*report,*assign,*caus,*name,*vers,*corefile,
  *vend,*dev,*call,*ack,*site,*des,*res;
{
struct {
  unsigned short len;
  unsigned char arr[10];
  } oir_number;
struct {
  unsigned short len;
  unsigned char arr[10];
  } status;
struct {
  unsigned short len;
  unsigned char arr[10];
  } serial_num;
struct {
  unsigned short len;
  unsigned char arr[30];
  } report_by;
struct {
  unsigned short len;
  unsigned char arr[30];
  } assign_to;
struct {
  unsigned short len;
  unsigned char arr[15];
  } cause;
struct {
  unsigned short len;
  unsigned char arr[15];
  } os_name;
struct {
  unsigned short len;
  unsigned char arr[15];
  } os_vers;
struct {
  unsigned short len;
  unsigned char arr[80];
  } core;
struct {
  unsigned short len;
  unsigned char arr[30];
  } vendor;
struct {
  unsigned short len;
  unsigned char arr[30];
  } device;
struct {
  unsigned short len;
  unsigned char arr[20];
  } tim_of_call;
struct {
  unsigned short len;
  unsigned char arr[20];
  } tim_of_ack;
struct {
  unsigned short len;
  unsigned char arr[20];
  } tim_on_site;
struct {
  unsigned short len;
  unsigned char arr[240];
  } description;
struct {
  unsigned short len;
  unsigned char arr[240];
  } resolution;
  short oir_numberi, statusi, serial_numi,
    report_byi, assign_toi, causei, os_namei, os_versi,
    corei, vendori, devicei, tim_of_calli, tim_of_acki,
    tim_on_sitei, descriptioni, resolutioni;
  static char *value;
  char *oracle_error();
  oir_numberi=statusi=serial_numi=report_byi=assign_toi=causei=os_namei=
    os_versi=corei=vendori=devicei=tim_of_calli=tim_of_acki=tim_on_sitei=
    descriptioni=resolutioni=0;
  strcpy((oir_number.arr) , oir);
  if (!(oir_number.len = strlen(oir_number.arr)) )
    return value = "update_oir: halted: null oir number";
  strcpy((status.arr) , stat);
  if (!(status.len = strlen(status.arr)) )
    statusi = -1;
  strcpy((serial_num.arr) , sn);
  if (!(serial_num.len = strlen(serial_num.arr)) )
    serial_numi = -1;
  strcpy((report_by.arr) , report);
  if (!(report_by.len = strlen(report_by.arr)) )
    report_byi = -1;
  strcpy((assign_to.arr) , assign);
  if (!(assign_to.len = strlen(assign_to.arr)) )
    assign_toi = -1;
  strcpy((cause.arr) , caus);
  if (!(cause.len = strlen(cause.arr)) )
    causei = -1;
  strcpy((os_name.arr) , name);
  if (!(os_name.len = strlen(os_name.arr)) )
    os_namei = -1;
  strcpy((os_vers.arr) , vers);
  if (!(os_vers.len = strlen(os_vers.arr)) )
    os_versi = -1;
  strcpy((core.arr) , corefile);
  if (!(core.len = strlen(core.arr)) )
    corei = -1;
  strcpy((vendor.arr) , vend);
  if (!(vendor.len = strlen(vendor.arr)) )
    vendori = -1;
  strcpy((device.arr) , dev);
  if (!(device.len = strlen(device.arr)) )
    devicei = -1;
  strcpy((tim_of_call.arr) , call);
  if (!(tim_of_call.len = strlen(tim_of_call.arr)) )
    tim_of_calli = -1;
  strcpy((tim_of_ack.arr) , ack);
  if (!(tim_of_ack.len = strlen(tim_of_ack.arr)) )
    tim_of_acki = -1;
  strcpy((tim_on_site.arr) , site);
  if (!(tim_on_site.len = strlen(tim_on_site.arr)) )
    tim_on_sitei = -1;
  printf("Call: %s  Ack: %s  Site: %s\n",call,ack,site);
  strncpy((description.arr) , des, 240);  
  (description.arr) [239] = '\0';
  if (!(description.len = strlen(description.arr)) )
    descriptioni = -1;
  strncpy((resolution.arr) , res, 240);
  (resolution.arr) [239] = '\0';
  if (!(resolution.len = strlen(resolution.arr)) )
    resolutioni = -1;
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq004.sq004T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq004.sq004N, sq004.sq004V,
  sq004.sq004L, sq004.sq004T, sq004.sq004I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
sqlscc(&sqlcun[0]);
sqltfl(&SQLTM[0], &SQLBT0);
if ( !SQLTM[0] )
  {   
SQLTM[0] = (int)16384;
sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn);
SQLTM[0] = (int)403;
sqlosq(sq005, &SQLTM[0]);
sq006.sq006V[0] = (unsigned char *)&status.len;
sq006.sq006L[0] = (unsigned int)12;
sq006.sq006T[0] = (unsigned short)9;
sq006.sq006I[0] = (unsigned short *)&statusi;
sq006.sq006V[1] = (unsigned char *)&serial_num.len;
sq006.sq006L[1] = (unsigned int)12;
sq006.sq006T[1] = (unsigned short)9;
sq006.sq006I[1] = (unsigned short *)&serial_numi;
sq006.sq006V[2] = (unsigned char *)&report_by.len;
sq006.sq006L[2] = (unsigned int)32;
sq006.sq006T[2] = (unsigned short)9;
sq006.sq006I[2] = (unsigned short *)&report_byi;
sq006.sq006V[3] = (unsigned char *)&assign_to.len;
sq006.sq006L[3] = (unsigned int)32;
sq006.sq006T[3] = (unsigned short)9;
sq006.sq006I[3] = (unsigned short *)&assign_toi;
sq006.sq006V[4] = (unsigned char *)&cause.len;
sq006.sq006L[4] = (unsigned int)17;
sq006.sq006T[4] = (unsigned short)9;
sq006.sq006I[4] = (unsigned short *)&causei;
sq006.sq006V[5] = (unsigned char *)&os_name.len;
sq006.sq006L[5] = (unsigned int)17;
sq006.sq006T[5] = (unsigned short)9;
sq006.sq006I[5] = (unsigned short *)&os_namei;
sq006.sq006V[6] = (unsigned char *)&os_vers.len;
sq006.sq006L[6] = (unsigned int)17;
sq006.sq006T[6] = (unsigned short)9;
sq006.sq006I[6] = (unsigned short *)&os_versi;
sq006.sq006V[7] = (unsigned char *)&core.len;
sq006.sq006L[7] = (unsigned int)82;
sq006.sq006T[7] = (unsigned short)9;
sq006.sq006I[7] = (unsigned short *)&corei;
sq006.sq006V[8] = (unsigned char *)&vendor.len;
sq006.sq006L[8] = (unsigned int)32;
sq006.sq006T[8] = (unsigned short)9;
sq006.sq006I[8] = (unsigned short *)&vendori;
sq006.sq006V[9] = (unsigned char *)&device.len;
sq006.sq006L[9] = (unsigned int)32;
sq006.sq006T[9] = (unsigned short)9;
sq006.sq006I[9] = (unsigned short *)&devicei;
sq006.sq006V[10] = (unsigned char *)&tim_of_call.len;
sq006.sq006L[10] = (unsigned int)22;
sq006.sq006T[10] = (unsigned short)9;
sq006.sq006I[10] = (unsigned short *)&tim_of_calli;
sq006.sq006V[11] = (unsigned char *)&tim_of_ack.len;
sq006.sq006L[11] = (unsigned int)22;
sq006.sq006T[11] = (unsigned short)9;
sq006.sq006I[11] = (unsigned short *)&tim_of_acki;
sq006.sq006V[12] = (unsigned char *)&tim_on_site.len;
sq006.sq006L[12] = (unsigned int)22;
sq006.sq006T[12] = (unsigned short)9;
sq006.sq006I[12] = (unsigned short *)&tim_on_sitei;
sq006.sq006V[13] = (unsigned char *)&description.len;
sq006.sq006L[13] = (unsigned int)242;
sq006.sq006T[13] = (unsigned short)9;
sq006.sq006I[13] = (unsigned short *)&descriptioni;
sq006.sq006V[14] = (unsigned char *)&resolution.len;
sq006.sq006L[14] = (unsigned int)242;
sq006.sq006T[14] = (unsigned short)9;
sq006.sq006I[14] = (unsigned short *)&resolutioni;
sq006.sq006V[15] = (unsigned char *)&oir_number.len;
sq006.sq006L[15] = (unsigned int)12;
sq006.sq006T[15] = (unsigned short)9;
sq006.sq006I[15] = (unsigned short *)0;
sqlab2(&sq006.sq006N, sq006.sq006V,
  sq006.sq006L, sq006.sq006T, sq006.sq006I);
  }   
SQLTM[0] = (int)1;
sqlexe(&SQLTM[0]);
sqlwnr();
if (sqlca.sqlcode < 0)  goto o_err;
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq007.sq007T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq007.sq007N, sq007.sq007V,
  sq007.sq007L, sq007.sq007T, sq007.sq007I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
SQLTM[0] = (int)0;
sqlcom(&SQLTM[0]);
if (sqlca.sqlcode < 0)  goto o_err;
  return (char *) 0;
o_err:
  rollback();
  return value = oracle_error();
}
char *
new_oir()
{
  int oir_number;
  static char oir_str[10];
  char *oracle_error();
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq008.sq008T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq008.sq008N, sq008.sq008V,
  sq008.sq008L, sq008.sq008T, sq008.sq008I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
sqlscc(&sqlcun[1]);
sqltfl(&SQLTM[0], &SQLBT0);
if ( !SQLTM[0] )
  {   
SQLTM[0] = (int)16384;
sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn);
SQLTM[0] = (int)30;
sqlosq(sq009, &SQLTM[0]);
sq010.sq010V[0] = (unsigned char *)&oir_number;
sq010.sq010L[0] = (unsigned int)4;
sq010.sq010T[0] = (unsigned short)3;
sq010.sq010I[0] = (unsigned short *)0;
sqlad2(&sq010.sq010N, sq010.sq010V,
  sq010.sq010L, sq010.sq010T, sq010.sq010I);
  }   
SQLTM[0] = (int)1;
sqlexe(&SQLTM[0]);
SQLTM[0] = (int)1;
SQLTM[1] = (int)0;
sqlfch(&SQLTM[0], &SQLTM[1]);
if (sqlca.sqlcode < 0)  goto o_error;
  printf("current max oir # == %d.\n",oir_number);
  ++oir_number;
  printf("We'll insert oir# == %d.\n",oir_number);
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq011.sq011T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq011.sq011N, sq011.sq011V,
  sq011.sq011L, sq011.sq011T, sq011.sq011I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
sqlscc(&sqlcun[2]);
sqltfl(&SQLTM[0], &SQLBT0);
if ( !SQLTM[0] )
  {   
SQLTM[0] = (int)16384;
sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn);
SQLTM[0] = (int)76;
sqlosq(sq012, &SQLTM[0]);
sq013.sq013V[0] = (unsigned char *)&oir_number;
sq013.sq013L[0] = (unsigned int)4;
sq013.sq013T[0] = (unsigned short)3;
sq013.sq013I[0] = (unsigned short *)0;
sqlab2(&sq013.sq013N, sq013.sq013V,
  sq013.sq013L, sq013.sq013T, sq013.sq013I);
  }   
SQLTM[0] = (int)1;
sqlexe(&SQLTM[0]);
if (sqlca.sqlcode < 0)  goto o_error;
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq014.sq014T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq014.sq014N, sq014.sq014V,
  sq014.sq014L, sq014.sq014T, sq014.sq014I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
SQLTM[0] = (int)0;
sqlcom(&SQLTM[0]);
if (sqlca.sqlcode < 0)  goto o_error;
  sprintf(oir_str, "%d", oir_number);
  return oir_str;
o_error:
  oracle_error();
  rollback();
  return (char *)0;
}
char *
  delete_oir(oir)
     char *oir;
{
  static char errmsg[256];
struct {
  unsigned short len;
  unsigned char arr[10];
  } oir_number;
  char *oracle_error();
  strcpy((oir_number.arr) ,oir);
  if (!(oir_number.len = strlen(oir_number.arr)) )
    { strcpy(errmsg,"NULL oir id"); return errmsg; }
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq015.sq015T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq015.sq015N, sq015.sq015V,
  sq015.sq015L, sq015.sq015T, sq015.sq015I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
sqlscc(&sqlcun[3]);
sqltfl(&SQLTM[0], &SQLBT0);
if ( !SQLTM[0] )
  {   
SQLTM[0] = (int)16384;
sqlopn(&SQLTM[0], &SQLBT3, &sqlvsn);
SQLTM[0] = (int)36;
sqlosq(sq016, &SQLTM[0]);
sq017.sq017V[0] = (unsigned char *)&oir_number.len;
sq017.sq017L[0] = (unsigned int)12;
sq017.sq017T[0] = (unsigned short)9;
sq017.sq017I[0] = (unsigned short *)0;
sqlab2(&sq017.sq017N, sq017.sq017V,
  sq017.sq017L, sq017.sq017T, sq017.sq017I);
  }   
SQLTM[0] = (int)1;
sqlexe(&SQLTM[0]);
sqlwnr();
if (sqlca.sqlcode < 0)  goto o_error;
sqlsca(&sqlca);
if ( !sqlusi[0] )
  {   
sq018.sq018T[0] = (unsigned short)10;
SQLTM[0] = (int)4;
sqlbs2(&sq018.sq018N, sq018.sq018V,
  sq018.sq018L, sq018.sq018T, sq018.sq018I,
  &SQLTM[0], &sqlusi[0]);
  }   
sqlsch(&sqlusi[0]);
SQLTM[0] = (int)0;
sqlcom(&SQLTM[0]);
if (sqlca.sqlcode < 0)  goto o_error;
  return (char *)0;
o_error:
  strcpy(errmsg,oracle_error());
  rollback();
  return errmsg;
}