File: variadic.i

package info (click to toggle)
frama-c 20220511-manganese-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 66,472 kB
  • sloc: ml: 278,832; ansic: 47,093; sh: 4,823; makefile: 3,618; javascript: 2,436; python: 1,919; perl: 897; lisp: 293; xml: 62
file content (29 lines) | stat: -rw-r--r-- 602 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* run.config
 PLUGIN: variadic
   STDOPT:
*/

int normal(int n);
int vf(int x, ...);

typedef char tt;
struct T {int a;} st;

tt abstract;
unsigned char uchar;
signed char chr;
unsigned short ushort;
unsigned long long ll;
long double ld;
double d;

void h();

void g() {
  vf(1,1u,uchar,3.0f, ushort, ll, abstract, st, ld,d);
  // vf() is variadic: the default argument promotions apply after the initial
  // arguments. C99 6.5.2.2:7
  f(1,uchar); // f undeclared, default argument promotions apply C99 6.5.2.2:6
  h(1,uchar); // h declared but without a prototype: C99 6.5.2.2:6
  normal(uchar);
}