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

Reply via email to