2021-02-27 10:31 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000552Frama-CKernelpublic2010-12-17 19:35
Assigned Tovirgile 
Product VersionFrama-C Boron-20100401 
Target VersionFixed in VersionFrama-C Carbon-20101201-beta1 
Summary0000552: Checking number of arguments passed to C functions
DescriptionThere currently isn't much checking of function arguments in the front-end. The following program is accepted, although it passes the wrong number of arguments for both calls to retint:

int retint(int x )
  int __retres ;
  __retres = 42 + x;
  return (__retres);

int main(int c )
  int x ;
  int tmp ;
  x = retint();
  tmp = retint(c,c);
  return (tmp);

Arguments for not implementing this feature: there are perfectly good compilers to check for this, and not having rigid rules in place may even help with older code containing variadic functions. I am not sure when the current convention for declaring variadic functions became standardized, and it may not have been from the beginning.
TagsNo tags attached.
Attached Files




virgile (developer)

Regarding variadic functions, according to wikipedia, C89 already had this feature. Old-style definition of variadic functions (as authorized by POSIX) are quite similar.

-Issue History
Date Modified Username Field Change
2010-08-02 10:47 pascal New Issue
2010-08-23 10:18 virgile Status new => assigned
2010-08-23 10:18 virgile Assigned To => virgile
2010-08-23 10:25 virgile Note Added: 0001079
2010-08-27 11:39 svn
2010-08-27 11:39 svn Status assigned => resolved
2010-08-27 11:39 svn Resolution open => fixed
2010-12-10 15:45 signoles Fixed in Version => Frama-C Carbon-20101201-beta1
2010-12-17 19:35 signoles Status resolved => closed
+Issue History