1 /*- 2 * %sccs.include.proprietary.c% 3 */ 4 5 #ifndef lint 6 static char sccsid[] = "@(#)1.finish.c 4.2 (Berkeley) 04/16/91"; 7 #endif /* not lint */ 8 9 #include <stdio.h> 10 #include "def.h" 11 #include "1.incl.h" 12 13 fingraph() 14 { 15 /* if any entry statements, add a DUMVX with arcs to all entry statements */ 16 if (ENTLST) 17 { 18 ARC(START,0) = addum(ARC(START,0),ENTLST); 19 freelst(ENTLST); 20 } 21 /* if any FMTVX, add a DUMVX with arcs to all FMTVX's */ 22 if (FMTLST) 23 { 24 ARC(START,0) = addum(ARC(START,0),FMTLST); 25 freelst(FMTLST); 26 } 27 } 28 29 addum(v,lst) 30 VERT v; 31 struct list *lst; 32 { 33 VERT new; 34 int count,i; 35 struct list *ls; 36 count = lslen(lst); /* length of lst */ 37 new = create(DUMVX,1+count); 38 ARC(new,0) = v; 39 for (i = count, ls = lst; i >= 1; --i, ls = ls->nxtlist) 40 { 41 ASSERT(ls,addum); 42 ARC(new,i) = ls->elt; 43 } 44 ASSERT(!ls, addum); 45 return(new); 46 } 47