--- a/amtog.c +++ b/amtog.c @@ -42,7 +42,7 @@ main(int argc, char *argv[]) { int m,n,outdigit; int argnum,i,j,outcode,val; - int unsym0,unsym1,loop0; + int unsym0=0,unsym1=0,loop0=0; char *arg,sw,ochar; boolean badargs; boolean nswitch,sswitch,gswitch,hswitch,qswitch; --- a/bliss2dre.c +++ b/bliss2dre.c @@ -39,7 +39,7 @@ main(int argc, char *argv[]) { int n,c; unsigned long ne,j; - vpair *elist,*vlist; + vpair *elist=NULL,*vlist=NULL; int haven; int i,v,w; int haveptn; --- a/complg.c +++ b/complg.c @@ -74,7 +74,7 @@ main(int argc, char *argv[]) int j,m,n,argnum; int codetype,outcode; graph *g; - size_t ii,ned,nedc,nn,loops,loopsc,gwords; + size_t ii,ned,nedc,nn,loops,loopsc=0,gwords; nauty_counter nin; char *arg,sw; static graph *gq; --- a/cubhamg.c +++ b/cubhamg.c @@ -1961,7 +1961,7 @@ main(int argc, char *argv[]) double t0,t1; cubgraph cub; char *arg; - nauty_counter count,mincount,maxcount,totalcount; + nauty_counter count,mincount=0,maxcount=0,totalcount; int codetype; HELP; PUTVERSION; --- a/dreadnaut.c +++ b/dreadnaut.c @@ -389,7 +389,7 @@ main(int argc, char *argv[]) unsigned long uli; size_t sli; set *gp; - double timebefore,timeafter,mintime; + double timebefore=0.0,timeafter=0.0,mintime; char filename[515]; int sgn,sgorg,nperm; int multiplicity,actmult; --- a/dretodot.c +++ b/dretodot.c @@ -252,7 +252,7 @@ double ComputeFontsize(int vtx) { int main(int argc, char *argv[]) { - int m, n, c, a, i, j, k, end, n_count; + int m=0, n, c, a, i, j, k, end, n_count; size_t j1, e_count; int argnum, initorg, cell, numCol, modcode, vtx, refcode, MaxV, MaxE; char *arg, sw; @@ -266,10 +266,10 @@ main(int argc, char *argv[]) char model[10]; int numcells, flind, indivtx; long minil, maxil; - double hsize, vsize, fsize; + double hsize, vsize, fsize=0.0; sparsegraph g, g1; list *liststart, *listend; - int nodescale, distance, StInd, StIndDist, RnkInd, RnkIndDist; + int nodescale, distance, StInd=0, StIndDist, RnkInd, RnkIndDist=0; HELP; PUTVERSION; --- a/genbg.c +++ b/genbg.c @@ -1192,7 +1192,7 @@ genextend(graph *g, int n2, int *deg, in graph gx[MAXN]; int degx[MAXN]; boolean rigidx; - int dneed,need,nfeet,hideg,deg1,ft[MAXN],nfrag,frag[MAXN]; + int dneed,need,nfeet=0,hideg,deg1,ft[MAXN],nfrag=0,frag[MAXN]; #ifdef INSTRUMENT boolean haschild; --- a/genquarticg.c +++ b/genquarticg.c @@ -226,8 +226,8 @@ STATIC_POPCNTFUNC(void,extend, (int n, graph *g, edgestruct *edge, pairstruct *epair, int numpair, int *epairorbit, int *multar, setword *zar, int *col00w, boolean connectflag), { - int vm1, vm2, vm3, vm4, vt1, vt2, vt3, vt4, c, b, mcol1, - tcol, got_one, i, j, numpair1, numdovi, maxdovi, i1, j1, i2, j2, + int vm1, vm2, vm3, vm4, vt1, vt2, vt3, vt4, c, b, mcol1=0, + tcol, got_one, i, j, numpair1, numdovi, maxdovi=0, i1, j1, i2, j2, temp, mult, multm, rely, numedge, dcol, dcolp, e1, e2; int firsttime[MAXN], firsttimey[MAXN], multar1[MAXN], col00[MAXN], col00w1[MAXN], doviorbit[3*MAXN], @@ -242,7 +242,7 @@ STATIC_POPCNTFUNC(void,extend, dovistruct dovi[3*MAXN]; dovistruct dovimax; register setword gi1, gi2, gj1, gj2; - boolean conf; + boolean conf=FALSE; ///////////////////////////////////////////////////////////////////////// if( n == splitlevel ) --- a/genrang.c +++ b/genrang.c @@ -1087,7 +1087,7 @@ main(int argc, char *argv[]) static FILE *outfile; char *outfilename; sparsegraph sg; - boolean usesparse,digraph,bipartite; + boolean usesparse,digraph,bipartite=FALSE; #if MAXN graph g[MAXM*1L*MAXN]; --- a/gtnauty.c +++ b/gtnauty.c @@ -682,7 +682,7 @@ istransitive(graph *g, int m, int n, gra int i,inv; set *gw; short wt; - int d,inv0,v,w; + int d,inv0=0,v,w; statsblk stats; static DEFAULTOPTIONS_GRAPH(options); #if MAXN --- a/gtools.c +++ b/gtools.c @@ -445,8 +445,8 @@ char* getecline(FILE *f) /* read an edge_code line */ /* No trailing \n or \0 is added. Immediate EOF causes NULL return. */ { - size_t headsize,bodysize; - int sizesize,edgesize; + size_t headsize=0,bodysize=0; + int sizesize=0,edgesize=0; int c1,c,i; DYNALLSTAT(unsigned char,s,s_sz); @@ -657,7 +657,7 @@ stringtograph(char *s, graph *g, int m) /* Assumes g is big enough to hold it. */ { char *p; - int n,i,j,k,v,x,nb,need; + int n,i,j,k,v,x=0,nb,need; size_t ii; set *gi,*gj; boolean done; @@ -800,7 +800,7 @@ stringtograph_inc(char *s, graph *g, int */ { char *p; - int n,i,j,k,v,x,nb,need; + int n,i,j,k,v,x=0,nb,need; size_t ii; set *gi,*gj; boolean done; @@ -955,7 +955,7 @@ readgg(FILE *f, graph *g, int reqm, int */ { char *s,*p; - int m,n; + int m=0,n; if ((readg_line = gtools_getline(f)) == NULL) return NULL; @@ -1108,7 +1108,7 @@ readgg_inc(FILE *f, graph *g, int reqm, */ { char *s,*p; - int m,n; + int m=0,n; if ((readg_line = gtools_getline(f)) == NULL) return NULL; @@ -1219,7 +1219,7 @@ stringtosparsegraph(char *s, sparsegraph * Also returns the number of loops */ { char *p,*q; - int n,nde,i,j,k,vv,x,nb,need; + int n,nde,i,j,k,vv,x=0,nb,need; int *d,*e; size_t *v; int loops; --- a/gutil1.c +++ b/gutil1.c @@ -163,7 +163,9 @@ POPCNTFUNC(void,degstats2, return; } -#if !MAXN +#if MAXN + memset(indeg, 0, MAXN * sizeof(int)); +#else if (digraph) { DYNALLOC1(int,indeg,indeg_sz,n,"degstats2"); --- a/gutil2.c +++ b/gutil2.c @@ -457,7 +457,7 @@ POPCNTFUNC(int,conncontent,(graph *g, in graph h[WORDSIZE]; setword gj; int i,j,v1,v2,x,y; - int minv,mindeg,deg,goodv; + int minv=0,mindeg,deg,goodv; long ne; if (m > 1) ABORT("conncontent only implemented for m=1"); --- a/hamheuristic.c +++ b/hamheuristic.c @@ -252,14 +252,14 @@ main(int argc, char *argv[]) { sparsegraph sg; int n,codetype; - int argnum,i,j,outcode,tvalue; + int argnum,i,j,outcode=0,tvalue; char *arg,sw; boolean badargs; boolean pswitch,sswitch,gswitch,qswitch,Lswitch,tswitch,vswitch,uswitch; long Lvalue; double t; char *infilename,*outfilename; - FILE *infile,*outfile; + FILE *infile,*outfile=NULL; nauty_counter nin,nout,nNO,nYES,nTIMEOUT; int status; DYNALLSTAT(int,cyc,cyc_sz); --- a/labelg.c +++ b/labelg.c @@ -99,14 +99,14 @@ main(int argc, char *argv[]) sparsegraph sg,sh; int m,n,codetype; int argnum,j,outcode; - char *arg,sw,*fmt; + char *arg,sw,*fmt = NULL; boolean badargs,digraph; boolean sswitch,gswitch,qswitch,fswitch,Oswitch; boolean iswitch,Iswitch,Kswitch,Mswitch,Sswitch; boolean uswitch,tswitch,Cswitch,Wswitch,zswitch; boolean dooutput; int tabsize,outinvar; - int inv,mininvarlevel,maxinvarlevel,invararg; + int inv,mininvarlevel=0,maxinvarlevel=0,invararg; long minil,maxil; double t; char *infilename,*outfilename; --- a/linegraphg.c +++ b/linegraphg.c @@ -27,7 +27,7 @@ linegraph(sparsegraph *g, sparsegraph *h size_t *gv,*hv; int gnv,hnv,jj; size_t i,j,k,gnde,hnde,xhnde,num; - size_t hi,lo,mid,v,w; + size_t hi,lo,mid=0,v,w; sortlists_sg(g); SG_VDE(g,gv,gd,ge); @@ -113,7 +113,7 @@ totalgraph(sparsegraph *g, sparsegraph * size_t *gv,*hv; int gnv,hnv,jj; size_t i,j,k,gnde,hnde,xhnde,num; - size_t hi,lo,mid,v,w; + size_t hi,lo,mid=0,v,w; sortlists_sg(g); SG_VDE(g,gv,gd,ge); --- a/listg.c +++ b/listg.c @@ -529,7 +529,7 @@ main(int argc, char *argv[]) boolean sswitch,Mswitch,Wswitch,Lswitch,Eswitch; boolean bswitch,Gswitch,yswitch,Yswitch,Hswitch; int linelength; - char *infilename,*outfilename,*yarg; + char *infilename,*outfilename,*yarg=NULL; HELP; PUTVERSION; --- a/multig.c +++ b/multig.c @@ -895,7 +895,7 @@ main(int argc, char *argv[]) { graph *g; graph gg[MAXNV*SETWORDSNEEDED(MAXNV)]; - int i,m,n,ne,codetype; + int i,m,n,ne=0,codetype; int argnum,j,nfixed,maxdeg,regdeg,ldeg; char *arg,sw; boolean badargs; --- a/naugraph.c +++ b/naugraph.c @@ -193,7 +193,7 @@ POPCNTFUNC(void,refine,(graph *g, int *l int cnt,bmin,bmax; long longcode; set *gptr; - int maxcell,maxpos,hint; + int maxcell,maxpos=0,hint; DEF_DYNINT(workperm,n,"refine"); DEF_DYNSET(workset,m,"refine"); @@ -346,7 +346,7 @@ POPCNTFUNC(void,refine1,(graph *g, int * int cnt,bmin,bmax; long longcode; set *gptr,workset0; - int maxcell,maxpos,hint; + int maxcell,maxpos=0,hint; DEF_DYNINT(workperm,n,"refine1"); DEF_DYNINT(bucket,n+2,"refine1"); --- a/nautinv.c +++ b/nautinv.c @@ -1575,7 +1575,7 @@ STATIC_POPCNTFUNC(int,semirefine, int cnt,bmin,bmax; long longcode; set *gptr; - int maxcell,maxpos,hint; + int maxcell,maxpos=0,hint; DEF_DYNINT(workperm,n,"refine"); DEF_DYNSET(workset,m,"refine"); --- a/nauty.c +++ b/nauty.c @@ -565,7 +565,7 @@ firstpathnode(int *lab, int *ptn, int le #endif { int tv; - int tv1,index,rtnlevel,tcellsize,tc,childcount,qinvar,refcode; + int tv1,index,rtnlevel,tcellsize,tc,childcount=0,qinvar,refcode; #if !MAXN set *tcell; tcnode *tcnode_this; --- a/planarg.c +++ b/planarg.c @@ -171,7 +171,7 @@ int main(int argc, char *argv[]) { char *infilename,*outfilename; - FILE *infile,*outfile; + FILE *infile,*outfile=NULL; sparsegraph sg; boolean badargs; boolean verbose,nonplanar,quiet; --- a/planarity.c +++ b/planarity.c @@ -803,7 +803,7 @@ sparseg_adjl_remove_dir_edge_no_red (t_v A will be left with "holes" */ { - int cur_e, prev_e; + int cur_e, prev_e=0; cur_e = V[u].first_edge; if (cur_e == NIL) @@ -4687,7 +4687,7 @@ embedg_recover_embedding ( - for edge e, find its index in A: this should be found in either the embed_graph[v] record of the mult_edges[v] record */ - int index_embed, v, mult, w, v_w_in_embed, new_first_edge; + int index_embed, v, mult, w, v_w_in_embed=0, new_first_edge; boolean set_next; IF_DEB( @@ -7552,7 +7552,7 @@ sparseg_adjl_dfs_preprocessing ( according to their lowpoint value */ lowpoint_order = (int *) mem_malloc(sizeof(int) * n); - temp = (t_dlcl **) mem_malloc(sizeof(t_dlcl *) * n); + temp = (t_dlcl **) calloc(sizeof(t_dlcl *), n); new_dfs_tree = (t_dlcl **) mem_malloc(sizeof(t_dlcl *) * n); /* --- a/productg.c +++ b/productg.c @@ -99,7 +99,7 @@ void arg_oct(char **ps, int *val, char *id) { int code; - long longval; + long longval=0; code = longoctvalue(ps,&longval); *val = longval; --- a/schreier.c +++ b/schreier.c @@ -558,7 +558,7 @@ filterschreier(schreier *gp, int *p, per schreier *sh; int *orbits,*pwr; permnode **vec,*curr; - boolean changed,lchanged,ident; + boolean changed,lchanged,ident=FALSE; #if !MAXN DYNALLOC1(int,workperm,workperm_sz,n,"filterschreier"); #endif @@ -774,7 +774,7 @@ getorbitsmin(int *fix, int nfix, schreie { schreier *sh,*sha; int *fixorbs; - int i,j,k,icell,nfails,wordlen,skips; + int i,j,k,icell=0,nfails,wordlen,skips; permnode *pn; #if !MAXN DYNALLOC1(int,workperm2,workperm2_sz,n,"expandschreier"); --- a/shortg.c +++ b/shortg.c @@ -280,11 +280,11 @@ int main(int argc, char *argv[]) { char *infilename,*outfilename; - FILE *infile,*outfile; - FILE *sortin,*sortout; + FILE *infile,*outfile=NULL; + FILE *sortin=NULL,*sortout=NULL; int status,loops; char *dstr,*cdstr,*prevdstr,*prevcdstr; - char sw,*fmt; + char sw,*fmt=NULL; boolean badargs,quiet,vswitch,dswitch,kswitch,format,uswitch; boolean iswitch,Iswitch,Kswitch,Tswitch; boolean zswitch,sswitch,gswitch,Sswitch,tswitch; @@ -292,7 +292,7 @@ main(int argc, char *argv[]) nauty_counter numread,prevnumread,numwritten,classsize; int m,n,i,ii,argnum,line; int outcode,codetype; - int inv,mininvarlevel,maxinvarlevel,invararg; + int inv,mininvarlevel=0,maxinvarlevel=0,invararg; long minil,maxil; pid_t sortpid; graph *g; --- a/showg.c +++ b/showg.c @@ -559,7 +559,7 @@ stringtograph(char *s, graph *g, int m) /* Assumes g is big enough to hold it. */ { char *p; - int n,i,j,k,v,x,nb,need; + int n,i,j,k,v,x=0,nb,need; size_t ii; set *gi,*gj; boolean done; @@ -703,7 +703,7 @@ readgg(FILE *f, graph *g, int reqm, int { char *s,*p; int m,n; - int readg_code; + int readg_code=0; if ((s = showg_getline(f)) == NULL) return NULL; --- a/subdivideg.c +++ b/subdivideg.c @@ -26,7 +26,7 @@ subdivisiongraph(sparsegraph *g, int k, size_t *gv,*hv; int gnv,hnv; size_t i,j,l,gnde,hnde,num; - size_t hi,lo,mid,w; + size_t hi,lo,mid=0,w; sortlists_sg(g); if (k == 0) --- a/traces.c +++ b/traces.c @@ -1386,7 +1386,7 @@ int traces_refine(Candidate *Cand, int newtrace = FALSE; int Sparse = TRUE; int *lab, *cls, *InvLab, *TracePos, *SplitCell, *LabCell, *TraceEnd, Traceccend, *Tracestpend; - int BigCell, BigCellPos, BigCellSize; + int BigCell=0, BigCellPos=0, BigCellSize=0; boolean TraceCell = FALSE; int *nghb; int conta; @@ -2158,7 +2158,7 @@ void traces_refine_notrace(Candidate *Ca int Split = 0; int Sparse = TRUE; int *lab, *cls, *InvLab, *SplitCell, *LabCell; - int BigCell, BigCellPos, BigCellSize; + int BigCell=0, BigCellPos=0, BigCellSize=0; int *nghb; const int variation = 1; int currentweight, weightstart, weightend, currentcell, currentsize; @@ -2754,7 +2754,7 @@ void traces_refine_maketrie(Candidate *C int Split = 0; int Sparse = TRUE; int *lab, *cls, *InvLab, *SplitCell, *LabCell; - int BigCell, BigCellPos, BigCellSize; + int BigCell=0, BigCellPos=0, BigCellSize=0; int *nghb; const int variation = 1; int currentweight, weightstart, weightend, currentcell, currentsize; @@ -3331,7 +3331,7 @@ int traces_refine_comptrie(Candidate *Ca int Split = 0; int Sparse = TRUE; int *lab, *cls, *InvLab, *SplitCell, *LabCell; - int BigCell, BigCellPos, BigCellSize; + int BigCell=0, BigCellPos=0, BigCellSize=0; int *nghb; const int variation = 1; int currentweight, weightstart, weightend, currentcell, currentsize; @@ -3913,7 +3913,7 @@ int traces_refine_sametrace(Candidate *C unsigned int longcode; int Sparse = TRUE; int *lab, *cls, *InvLab, *TracePos, *SplitCell, *LabCell, *TraceEnd, Traceccend, *Tracestpend; - int BigCell, BigCellPos, BigCellSize; + int BigCell=0, BigCellPos=0, BigCellSize=0; boolean TraceCell = FALSE; int *nghb; const int variation = 0; @@ -4755,7 +4755,7 @@ void refine_tr_refine(Candidate *Cand, int newtrace = FALSE; int Sparse = TRUE; int *lab, *cls, *InvLab, *TracePos, *SplitCell, *LabCell, TraceEnd, Traceccend, Tracestpend; - int BigCell, BigCellPos, BigCellSize; + int BigCell=0, BigCellPos=0, BigCellSize=0; boolean TraceCell = FALSE; int *nghb; const int variation = 0; @@ -6378,7 +6378,7 @@ int CompStage0(Partition *CurrPart, Part int m, int n, struct TracesVars* tv, struct TracesInfo *ti) { int i, j, i1, j2, k, cu, cu1, num_indv; int temp, tmp, auxcode, search_vtx, gom_level; - boolean closeloop, firstsing, has_nexttcell; + boolean closeloop=FALSE, firstsing, has_nexttcell; Candidate *SpTLliststart, *AuxCand; searchtrie *TreeNode, *TreeNode1, *TreeNode2; @@ -10173,12 +10173,11 @@ struct trie *trie_make(trie *t, int valu struct trie *trie_new(int n, struct TracesVars* tv) { - TrieArray[0] = malloc(n*sizeof(trie)); + TrieArray[0] = calloc(n, sizeof(trie)); if (TrieArray[0] == NULL) { fprintf(ERRFILE, "\nError, memory not allocated.\n"); exit(1); } - TrieArray[0][0].first_child = TrieArray[0][0].next_sibling = NULL; tv->triepos = 0; tv->trienext = 1; return TrieArray[0];