File: overflow.i

package info (click to toggle)
frama-c 20161101%2Bsilicon%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 42,324 kB
  • ctags: 35,695
  • sloc: ml: 200,142; ansic: 31,465; makefile: 2,334; sh: 1,643; lisp: 259; python: 85; asm: 26
file content (34 lines) | stat: -rw-r--r-- 875 bytes parent folder | download
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
32
33
34
/* run.config*
   STDOPT: #"-warn-signed-overflow"
   STDOPT: #"-no-warn-signed-overflow"
*/
extern int printf (__const char *__restrict __format, ...);
/* L'analyseur dborde et dit i=-1 */
int main (int c) {
  unsigned long long i = 0xFFFFFFFFFFFFFFFFULL;
  unsigned long j = 0xFFFFFFFFUL;

  long long is = 0xFFFFFFFFFFFFFFFFULL;
  long js =    0xFFFFFFFFUL;
  long minjs = - (j/2) -1  ;
  long maxjs =  j/2  ;
  
  unsigned long long i1 = i+1;
  unsigned long j1 = j+1;

  int y = c?1:100000;
  int x = (60000 * y) / 100000;
  int z = y * 1000 * 1000;
  int t = (-y) * 10000000; 
/*
 printf("unsigned long long:%llu (+1:%llu)\nunsigned long:%lu (+1:%lu)\n"
         ,i,i1,j,j1);
  printf("signed long long:%lld (+1:%lld)\nlong:%ld (+1:%ld)\n"
         ,is,is+1,js,js+1);
  printf("min signed long:%ld (-1:%ld)\n"
         ,minjs,minjs-1L);
*/
  if (-c) {}

  return 0;
}