File: type_compat_call.c

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 (31 lines) | stat: -rw-r--r-- 628 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
30
31
/*run.config
  STDOPT: #"-machdep x86_32"
 */
#include <stdint.h>

typedef uint8_t buf_content;

void f(int32_t const *p);
void g(int32_t *const p);
void h(uint8_t const *p);
void m(int8_t const *p);
void n(int volatile* p);
void o(uint8_t* p);

int main() {
  int const i = 42;
  f(&i); // compatible
  g(&i); // incompatible
  char const c = 'c';
  signed char const s = 's';
  unsigned char const u = 'u';
  h(&c); // incompatible
  h(&u); // compatible
  m(&c); // compatible
  m(&s); // incompatible
  int j = 51;
  n(&j); // 'volatile' discarded: no warning
  buf_content buf[3];
  o(&buf[0]); // compatible
  return 0;
}