comparison gcc/testsuite/gcc.dg/analyzer/conditionals-3.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 /* { dg-additional-options "-fno-analyzer-state-merge" } */
2
3 #include "analyzer-decls.h"
4
5 static void only_called_when_flag_a_true (int i)
6 {
7 __analyzer_eval (i == 42); /* { dg-warning "TRUE" } */
8 }
9
10 static void only_called_when_flag_b_true (int i)
11 {
12 __analyzer_eval (i == 17); /* { dg-warning "TRUE" } */
13 }
14
15 int test_1 (int flag_a, int flag_b)
16 {
17 int i = 17;
18
19 __analyzer_eval (flag_a); /* { dg-warning "UNKNOWN" } */
20 __analyzer_eval (flag_b); /* { dg-warning "UNKNOWN" } */
21
22 if (flag_a)
23 {
24 __analyzer_eval (flag_a); /* { dg-warning "TRUE" } */
25 __analyzer_eval (flag_b); /* { dg-warning "UNKNOWN" } */
26 i = 42;
27 }
28
29 __analyzer_eval (flag_b); /* { dg-warning "UNKNOWN" } */
30
31 if (flag_a)
32 {
33 __analyzer_eval (flag_a); /* { dg-warning "TRUE" } */
34 __analyzer_eval (flag_b); /* { dg-warning "UNKNOWN" } */
35 __analyzer_eval (i == 42); /* { dg-warning "TRUE" } */
36 __analyzer_eval (i == 17); /* { dg-warning "FALSE" } */
37 only_called_when_flag_a_true (i);
38 }
39 else
40 {
41 __analyzer_eval (flag_a); /* { dg-warning "FALSE" } */
42 __analyzer_eval (flag_b); /* { dg-warning "UNKNOWN" } */
43 __analyzer_eval (i == 42); /* { dg-warning "FALSE" } */
44 __analyzer_eval (i == 17); /* { dg-warning "TRUE" } */
45 only_called_when_flag_b_true (i);
46 }
47 }