[net.bugs.4bsd] update on f77 common block prob.

warren (08/06/82)

#N:uicsovax:2200003:000:3269
uicsovax!warren    Jun 23 11:14:00 1982

The following 60 lines of common block from the CORE graphics standard
does not compile under f77 correctly, it does compile elsewhere correctly.
I had earlier made the statement that I thought it was the way
f77 was parsing common blocks, perhaps I was incorrect, here
is the offending block of code: (try f77 -c thisfile.f)
      SUBROUTINE SLSTYL(NEWLS)
C
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER*2 LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER*2 OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER*2 SEGTYP, OPSEG
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER*2 PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
C
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
C----------------------------------------------------------------
      INTEGER*2 NEWLS,NAME(3)
      DATA NAME/'SL','ST','YL'/
C-------------------------------------------------------------------
C------------------------------------------------------------------
C  CHECK SINIT TO VERIFY THAT THE SYSTEM HAS BEEN INITIALIZED
C------------------------------------------------------------------
C     this block of code from the GWCORE graphics standard
C     the above common block does not compile with f77 -c ff.f
C     i have extracted this part and tried it by itself and the
C     same error messages of common block alignment are output.
C
      stop
      end

hamilton (08/06/82)

#R:uicsovax:2200003:uicsovax:2200004:000:543
uicsovax!hamilton    Jun 23 22:43:00 1982

   the compiler error messages will go away if you redefine the INTEGERs in
the COMMON block from INTEGER*2 to INTEGER*4, or re-arrange the order of the
members of the COMMON block so that each REAL follows an even number of
INTEGER*2s (either by actually re-arranging the members, or inserting dummy
INTEGER*2s for alignment padding).
   f77 is acting rather peculiar here?  i would expect it to provide any
alignment padding necessary (as C does for structs) with at most a warning.
	wayne hamilton (decvax!pur-ee!uiucdcs!uicsovax!hamilton)

lvan (08/06/82)

#R:uicsovax:2200003:uicsovax:2200005:000:38
uicsovax!lvan    Jun 27 15:21:00 1982

That fixed the problem, thanks wayne.