Angelo Graziosi <[EMAIL PROTECTED]> writes: > Ian Lance Taylor wrote: >> It's valid, but it's not the right patch. The right patch is to use >> XNEW and XCNEW from include/libiberty.h. >> > > Gabriel Dos Reis in [1] wrote: >> The idiom is to use XCNEWVAR(T) for xcalloc(1, sizeof(T)), >> XNEWVAR(T) for xmalloc(sizeof(T)),... > > > Gulp! I am a little confused... XNEW or XNEWVAR, etc.?
It is confusing. > --- gcc-4.4-20080704.orig/gcc/ggc-page.c 2008-06-29 06:39:16.000000000 +0200 > +++ gcc-4.4-20080704/gcc/ggc-page.c 2008-07-05 12:00:20.906250000 +0200 > @@ -799,7 +799,7 @@ > alloc_size = GGC_QUIRE_SIZE * G.pagesize; > else > alloc_size = entry_size + G.pagesize - 1; > - allocation = xmalloc (alloc_size); > + allocation = XNEWVAR(char, alloc_size); Actually, I think this should be XNEWVEC (char, alloc_size), though the effect is similar when the type is char. > @@ -842,7 +842,7 @@ > struct page_entry *e, *f = G.free_pages; > for (a = enda - G.pagesize; a != page; a -= G.pagesize) > { > - e = xcalloc (1, page_entry_size); > + e = XCNEWVAR(struct page_entry, page_entry_size); Here XCNEWVAR is correct. There should be a space before the left parenthesis. Ian