On Fri, May 21, 2010 at 9:11 AM, Elnatan Reisner <elna...@cs.umd.edu> wrote: > On May 20, 2010, at 1:10 PM, Chucky Ellison wrote: > > I've noticed some argument promotions that seem not to have been made > explicit. In the code: > > int testDifferent(int x, ...); > > On May 21, 2010, at 3:01 AM, Christoph Spiel wrote: > > I can reproduce your findings and I too > think Cil does not follow the C-standard here, > though IMHO the relevant part is not 7.15.1.1:2, > but 6.5.2.2:7. Also see: Harbison/Steele > Sec. 6.3.5. > > Aside from ellipses in function prototypes, CIL also exhibits this behavior > when functions are declared with no prototype, as in: > void f(); > I think 6.5.2.2:6 of the standard says that the default argument promotions > should happen here, too. But I must admit that this paragraph is a bit hard > to understand. (There are a few tests in CIL's svn distribution, > test/small1/noproto*.c, which seem to be testing something regarding > functions without prototypes, but those tests show that CIL doesn't insert > casts.)
See bullet 6 in the "Compiling C to CIL" section of the CIL documenation at http://hal.cs.berkeley.edu/cil. In a nutshell, CIL rewrites prototypeless funcrtion declarations to have a prototype (when possible). I'm pretty sure said prototypes follow the implicit conversion rules... David Gay ------------------------------------------------------------------------------ _______________________________________________ CIL-users mailing list CIL-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cil-users