Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/uninit-pred-4_b.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 /* { dg-do compile } */ | |
2 /* { dg-options "-Wuninitialized -O2" } */ | |
3 | |
4 int g; | |
5 void bar(); | |
6 void blah(int); | |
7 int foo (int n, int m, int r, int t) | |
8 { | |
9 int flag = 0; | |
10 int v; | |
11 | |
12 if (t) | |
13 { | |
14 if (n) | |
15 { | |
16 v = r; /* init path 1 */ | |
17 flag = 1; | |
18 } | |
19 | |
20 if (m) g++; | |
21 else bar(); | |
22 | |
23 if (flag) /* properly guarded */ | |
24 blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */ | |
25 } | |
26 else | |
27 { | |
28 v = r+1; /* init path 2 */ | |
29 flag = 2; | |
30 } | |
31 | |
32 if (m) g++; | |
33 else bar(); | |
34 | |
35 if (g) /* guard can not be determined statically to be safe */ | |
36 blah(v); /* { dg-warning "uninitialized" "real warning" } */ | |
37 | |
38 return 0; | |
39 } | |
40 |