File: compile_constant.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 (18 lines) | stat: -rw-r--r-- 477 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define M0(x) (x)*(x)<4.0?0.0:1.0
char pixels[] = {M0(0.0), M0(1), M0(2.0f)};

/* tests below should evaluate to 2. */

char test_neg = { (-0.) ? 1. : 2. };

char test_ge = { ((-1.) >= 0.) ? 1. : 2. };

char test_cast[] = { 1 >= (0?1U:(-1)) ? 1. : 2.,
                   ((double)1) >= (0?1U:(-1)) ? 1. : 2. };

double a = 2 >= 5 ? 5 ? (long)0 || 0 ? 0. >= 0 ?: 0 : 2 : 5 : 0;

extern int f(void);

/* no call should be evaluated. */
char no_call[] = { 1 ? 1 : f(), 0?f():2 };