Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/uninit-pr90394-1-gimple.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-do compile } */ | |
2 /* { dg-options "-fgimple -O -Wmaybe-uninitialized" } */ | |
3 | |
4 unsigned int __GIMPLE (ssa,startwith("uninit1")) | |
5 foo (unsigned int v) | |
6 { | |
7 /* The warning is not bogus, because (5 & 3) != 0 and therefore if v == 5, | |
8 the value of undef is used without being initialized. */ | |
9 unsigned int undef; /* { dg-warning "may be used uninitialized" } */ | |
10 unsigned int _2; | |
11 unsigned int _9; | |
12 unsigned int _10; | |
13 unsigned pred; | |
14 | |
15 __BB(2): | |
16 if (v_4(D) != 5u) | |
17 goto __BB3; | |
18 else | |
19 goto __BB4; | |
20 | |
21 /* 'undef' is defined conditionally (under 'v != 5' predicate) */ | |
22 __BB(3): | |
23 undef_8 = 8u; | |
24 goto __BB4; | |
25 | |
26 /* An undef value flows into a phi. */ | |
27 __BB(4): | |
28 undef_1 = __PHI (__BB2: undef_5(D), __BB3: undef_8); | |
29 pred = v_4(D) & 3u; | |
30 if (pred != 0u) | |
31 goto __BB5; | |
32 else | |
33 goto __BB6; | |
34 | |
35 /* The phi value is used here (under 'v & 3' predicate). */ | |
36 __BB(5): | |
37 _9 = undef_1; | |
38 goto __BB7; | |
39 | |
40 __BB(6): | |
41 _10 = v_4(D); | |
42 goto __BB7; | |
43 | |
44 __BB(7): | |
45 _2 = __PHI (__BB5: _9, __BB6: _10); | |
46 return _2; | |
47 } |