Skip to content
Snippets Groups Projects
build-callgraph.i 1.27 KiB
Newer Older
/* run.config
   NOFRAMAC: testing frama-c-script, not frama-c itself
   EXECNOW: LOG build-callgraph.res LOG build-callgraph.err bin/frama-c-script heuristic-print-callgraph @PTEST_DIR@/@PTEST_NAME@.i > @PTEST_RESULT@/build-callgraph.res 2> @PTEST_RESULT@/build-callgraph.err
 */

#include <stdio.h>
void main() {
  strlen("");
}
struct s {
  int a; int b;
} s;

volatile int v;

int fn2(int, int);

int fn1(int x, int y)
{
  Frama_C_show_each_1(x);
  Frama_C_show_each_2(y);
  return x + y;
}

int X, Y;
int main1 () {
  R1 = fn1(G, G|0);
  R2 = fn2(G, G|0);
  Frama_C_show_each_d(G);
  pv = (int *) &X;
  return Y;
}

int * main2() {
  return 0;
}

#define not_a_function_call(v)                  \
  yes_a_function_call(v)

#define yet_another_not_a_call(v) do {          \
    yes_again();                                \
  } while (0)

/* call_inside_comment(evaluation); */
void main3 () {
  //@ not_a_function_call(v);
  yet_another_not_a_call(v);
}

/* Tests the initialization of local variables. */
void main4 () {
  f(g(h(i, j), k (l, m  (  n(
                             o, p(
                                  q)
                             )
                           )
                  )
      )
    );
  f();
  g();
}
void main() {
  main1();
  main2();
  main3();
  main4();
}