From: Christian S. <cil...@cs...> - 2006-05-30 14:50:26
|
On Mon, May 29, 2006 at 12:33:07PM -0700, George Necula wrote: > Hi, > Sorry for not replying earlier. I can apply your patches, but I > would very much prefer if you sent me some _small_ .c files that > demonstrate what the problem is. I will use them to test my fixes and > will put them in the regression suite. Ok, details below: > > - vararg handling: > > The problem is that __builtin_va_start call arguments > > weren't properly > > changed and that the constructed last argument to __builtin_va_arg > > wasn't properly cast to void*. This is already evident from running cilly --check test/small1/vararg1.c which reports two warnings: not enough args and a type mismatch. Both are fixed in my cabs2cil.ml patch. BTW, I was looking at the code again and I had a hard time understanding all these vararg hacks again. A little comment in cabs2cil.ml which illustrates the strategy regarding __builtin_va_* vs __builtin_vararg_* vs __builtin_stdarg_* would be highly appreciated. > > - some spelling corrections > > - __builtin_strspn returns a size_t which should map to uintType Don't think these two need .c files. > > - Cil.constFold forgets to transform 'exp's within 'Lval's Oh, it seems that there were some changes between 1.3.4 and 1.3.5 that changed things wrt constFold. This will take some time to reconciliate which I don't have right now. :-( > > - remove redundant/unused variables These are things like List.iter - (fun g -> - match g with + (function GFun(m, lm) when m.svar.vname = main_name -> Besides being more succinct it is also easier to read. When I read the first I wonder what g is going to be used for later on. -- Chris Stork <> Support eff.org! <> http://www.ics.uci.edu/~cstork/ OpenPGP fingerprint: B08B 602C C806 C492 D069 021E 41F3 8C8D 50F9 CA2F |